k8s之高可用集群部署

[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imblog.csdnimg.cn/202009231525434.png?x-oss-procgss=im-ge/Eatermark,type_ZmFuZ3poZWcwXC5naGVpdGk,shadow_10,text_aHR0cHMibG6nLmNzZG4ubmV0L3dlaXhpbl80MzcLNzU1NQ==,size_91,color_FFFFFF,t_61#pic_center609)(https://i的mg-blog.csdnimg.cn/20200903231525434.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzc1NzU1NQ==,size_16,color_FFFFFF,t_70#pic_center)]

初始化系统
所有服务器初始化节点,在之前部署k8s有提到,这里不做赘述,请参考
https://blog.csdn.net/weixin_43757555/article/details/108142265
初始化完成后关闭 NUMA

cp /etc/default/grub{,.bak}
vim /etc/default/grub # 在 GRUB_CMDLINE_LINUX 一行添加 `numa=off` 参数,如下所示:
< GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rhgb quiet" --- > GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rhgb quiet numa=off"
cp /boot/grub2/grub.cfg{,.bak}
grub2-mkconfig -o /boot/grub2/grub.cfg

安装集群

  1. kube-proxy开启ipvs的前置条件

    modprobe br_netfilter
    vim /etc/sysconfig/modules/ipvs.modules
    #!/bin/bash 
    modprobe -- ip_vs 
    modprobe -- ip_vs_rr 
    modprobe -- ip_vs_wrr 
    modprobe -- ip_vs_sh 
    modprobe -- nf_conntrack_ipv4
    chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
    
  2. 安装 Docker 软件

    yum install -y yum-utils device-mapper-persistent-data lvm2
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    yum update -y && yum install -y docker-ce
    mkdir /etc/docker
    vim /etc/docker/daemon.json
    {
       "exec-opts": ["native.cgroupdriver=systemd"],
       "log-driver": "json-file",
        "log-opts": {
          "max-size": "100m"
        }
    }
    mkdir -p /etc/systemd/system/docker.service.d
    systemctl daemon-reload && systemctl restart docker && systemctl enable docker
    
  3. 在主节点启动 Haproxy 与 Keepalived 容器

    mkdir -p /usr/local/kubernetes/install
    

    资料地址:
    链接:https://pan.baidu.com/s/1cAT1qnuvqgvw63KSRoJXLQ
    提取码:bxvi
    上传hapoxy、keeplived、kubeadm包和start.keep包
    导入kubeadm镜像
    解压start.keep包,进入到cd data/lb

    vim etc/haproxy.cfg
    	先只保留一个server rancher01 192.168.66.10:6443
    
    Vim start-haproxy.sh 
    修改IP和端口6443
    执行start-haproxy脚本
    
    Ss -anpt|gree 6443
    
    Vim start-keeplive.sh
    修改VIP、网卡
    执行脚本start-keeplive.sh
    

    Ifconfig查看一下VIP有没有生成

  4. 初始化节点

    kubeadm config print init-defaults > kubeadm-config.yaml
    
    vim kubeadm-config.yaml
    localAPIEndpoint: 
    advertiseAddress: 192.168.66.10 
    controlPlaneEndpoint: "192.168.66.10:6444
    kubernetesVersion: v1.15.1 
    networking: 
    podSubnet: "10.244.0.0/16" 
    serviceSubnet: 10.96.0.0/12 
    --- 
    apiVersion: kubeproxy.config.k8s.io/v1alpha1 
    kind: KubeProxyConfiguration 
    featureGates: 
    SupportIPVSProxyMode: true 
    mode: ipvs 
    添加controlPlaneEndpoint:”vip地址”
    
    kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log
    
  5. 加入主节点以及其余工作节点
    执行安装日志中的加入命令
    3个主节点添加完成后,修改etc/haproxy.cfg,添加3个主结点server信息 rancher01 192.168.66.10:6443
    删除haproxy节点信息重新生成

    docker rm  -f  HAProxy-k8s && bash /data/lb/start-haproxy.sh
    

    将/data/lb/start-haproxy.sh文件拷到其它节点,执行删除重新添加

  6. Etcd 集群状态查看

    kubectl -n kube-system exec etcd-k8s-master01 -- etcdctl --endpoints=https://192.168.66.10:2379 --ca-file=/etc/kubernetes/pki/etcd/ca.crt --cert-file=/etc/kubernetes/pki/etcd/server.crt --key-file=/etc/kubernetes/pki/etcd/server.key cluster-health
    
    kubectl get endpoints kube-controller-manager --namespace=kube-system -o yaml
    kubectl get endpoints kube-scheduler --namespace=kube-system -o yaml
    
  7. 部署网络

    kubectl apply -f kube-flannel.yml
    

自此高可用k8s集群已经部署完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值