• k8s二进制部署


    镜像仓库:

    安装软件:docker、docker-compose、harbor、nginx

    1.下载cfssl、cfssljson、cfssl-certinfo,增加执行权限并放在PATH环境变量路径
    2.编辑ca-csr.json文件,初始化ca以生成ca证书和ca证书私钥
    3.编辑ca-conf.json文件,用于为其他组件生产证书做准备
    4.编辑/etc/docker/daemon.json文件,指定insecure-registries、bip等参数
    5.编辑harbor.yml文件,指定hostname、port、data_volume、location配置
    6.执行install.sh安装harbor
    7.编辑/etc/nginx/conf.d/harbor.conf,配置虚拟主机反向代理harbor
    8.拉取nginx镜像推送到harbor私有仓库
    9.拉取pause镜像推送到harbor私有仓库
    10.拉取coredns镜像推送到harbor私有仓库
    11.拉取traefik镜像推送到harbor私有仓库
    12.拉取kubernetes-dashboard-amd64镜像推送到harbor私有仓库

    主控节点:

    安装软件:supervisord、etcd、kube-apiserver、kube-controller-manager、kube-scheduler
    创建目录:logs、certs、config

    etcd安装
    1.编辑etcd-peer-csr.json文件(peer类型 用于etcd集群内部通信)
    2.生成etcd-peer证书
    3.分发etcd-peer证书到etcd节点
    4.创建etcd启动脚本指定集群参数和证书位置(ca.pem、etcd-peer.pem、etcd-peer-key.pem)
    5.创建etcd用户
    6.修改etcd相关目录的所有者和所属组为etcd
    7.编辑/etc/supervisord.d/etcd-server.ini
    8.服务托管supervisord启动etcd

    apiserver安装
    1.编辑client-csr.json文件(client类型 用于apiserver作为客户端与etcd通信)
    2.生成client证书
    3.编辑apiserver-csr.json(server类型 用于apiserver作为服务端和其它k8s组件通信 务必将vip添加到host列表)
    4.生成apiserver证书
    5.分发client证书和apiserver证书到master节点
    6.编辑audit.yaml审计配置文件
    7.创建apiserver启动脚本指定audit.yaml文件和集群参数及证书位置(ca.pem、ca-key.pem、client.pem、client-key.pem、apiserver.pem、apiserver-key.pem)
    8.编辑/etc/supervisord.d/kube-apiserver.ini
    9.服务托管supervisord启动apiserver
    10.配置负载均衡节点nginx主机四层反向代理到主控节点的6443端口
    11.配置负载均衡节点nginx主机keepalived服务(对外暴露统一的apiserver入口)

    controller-manager安装
    1.创建controller-manager启动脚本指定集群参数和http协议的本地回环8080端口和证书位置(ca.pem、ca-key.pem)
    2.编辑/etc/supervisord.d/kube-controller-manager.ini
    3.服务托管supervisord启动controller-manager

    kube-scheduler安装
    1.创建kube-scheduler启动脚本指定集群参数和http协议的本地回环8080端口
    2.编辑/etc/supervisord.d/kube-scheduler.ini
    3.服务托管supervisord启动kube-scheduler

    运算节点:

    安装软件:supervisord、docker、kubulet、kube-proxy、flannel
    创建目录:logs、certs、config

    kubelet安装
    1.编辑kubelet-csr.json文件(server类型 用于kubelet作为服务端与和apiserver通信)
    2.生成kubelet证书
    3.分发kubelet证书到node节点
    4.使用kubectl工具创建用户账户k8s-node的kubelet.kubeconfig配置文件(涉及证书ca.pem、client.pem、client-key.pem)
    5.分发kubelet.kubeconfig到node节点
    6.主控节点编辑k8s-node.yaml授权k8s-node用户绑定集群角色system:node
    7.主控节点应用k8s-node.yaml创建clusterrolebinding
    8.创建kubelet启动脚本指定kubeconfig文件和集群参数及证书位置(ca.pem、kubelet.pem、kubelet-key.pem)
    9.编辑/etc/supervisord.d/kubelet.ini
    10.服务托管supervisord启动kubelet

    kube-proxy安装
    1.编辑kube-proxy-client-csr.json文件(client类型 用户账户kube-proxy作为客户端与apiserver通信 CN指定为system:kube-proxy)
    2.生成kube-proxy-client证书
    3.分发kube-proxy-client证书到node节点
    4.使用kubectl工具创建用户账户kube-proxy的kube-proxy.kubeconfig配置文件(涉及证书ca.pem、kube-proxy-client.pem、kube-proxy-client-key.pem)
    5.分发kube-proxy.kubeconfig到node节点
    6.加载ipvs模块
    7.创建kube-proxy启动脚本指定集群参数和kubeconfig文件
    8.编辑/etc/supervisord.d/kube-proxy.ini
    9.服务托管supervisord启动kube-proxy

    flannel安装
    1.分发client证书到node节点(client类型 用于flannel和etcd通信)
    2.编辑subnet.env文件指定子网信息
    3.etcd节点使用设置/coreos.com/network/config指定flannel模型
    4.创建flannel启动脚本指定集群参数和env文件和证书位置(ca.pem、client.pem、client-key.pem)
    5.编辑/etc/supervisord.d/flannel.ini
    6.服务托管supervisord启动flannel

    coredns安装
    1.配置coredns资源配置清单(rabc.yaml、configmap.yaml、deployment.yaml、service.yaml)
    2.应用coredns资源配置清单

    traefik安装
    1.配置traefik资源配置清单(rabc.yaml、daemonset.yaml、service.yaml、ingress.yaml)
    2.应用traefik资源配置清单
    3.配置负载均衡节点nginx主机七层反向代理到node节点的81端口

    dashboard安装
    1.配置dashboard资源配置清单(rabc.yaml、deployment.yaml、service.yaml、ingress.yaml)
    2.应用dashboard资源配置清单
    3.验证集群并优化iptables规则

    参考链接:https://www.yuque.com/duduniao/k8s/

  • 相关阅读:
    jQuery Querystring
    BCP 导出文本到文件
    ASP.NET MVC实践系列12表单处理(转)
    with(nolock) 解释 SQL
    DevServer
    静态语言、动态语言、强类型语言、弱类型语言
    @符号惹的祸
    洛谷 题解 P4198 【楼房重建】
    题解 P2668 【斗地主】
    题解 P3620 【[APIO/CTSC 2007]数据备份】
  • 原文地址:https://www.cnblogs.com/Wang-Hongwei/p/14145401.html
Copyright © 2020-2023  润新知