部署了master和etcd,现在我们把work节点加入集群中。

一、 安装第三方包

 yum install -y epel-release conntrack ipvsadm ntp ntpdate ipset jq iptables curl sysstat libseccomp && modprobe ip_vs

二、创建kubelet bootstrap kubeconfig文件

##在master-01节点操作(因为会使用到ca证书和~/.kube/config文件)
    ##将node-0X替换为规划的节点hostname
    export BOOTSTRAP_TOKEN=$(kubeadm token create \
      --description kubelet-bootstrap-token \
      --groups system:bootstrappers:node-0X \
      --kubeconfig ~/.kube/config)
    # 设置集群参数
    kubectl config set-cluster kubernetes \
      --certificate-authority=/etc/kubernetes/cert/ca.pem \
      --embed-certs=true \
      --server=https://10.13.33.170:8443 \
      --kubeconfig=kubelet-bootstrap-node-0X.kubeconfig
    # 设置客户端认证参数
    kubectl config set-credentials kubelet-bootstrap \
      --token=${BOOTSTRAP_TOKEN} \
      --kubeconfig=kubelet-bootstrap-node-0X.kubeconfig
    # 设置上下文参数
    kubectl config set-context default \
      --cluster=kubernetes \
      --user=kubelet-bootstrap \
      --kubeconfig=kubelet-bootstrap-node-0X.kubeconfig
    # 设置默认上下文
    kubectl config use-context default --kubeconfig=kubelet-bootstrap-node-0X.kubeconfig

    ##查看生成的tocken
kubeadm token list --kubeconfig ~/.kube/config
  ##将tocken分发到制定节点
scp kubelet-bootstrap-node-09.kubeconfig node-0X:/etc/kubernetes/kubelet-bootstrap.kubeconfig

三、创建kubelet参数配置
##每个节点都相同,可以分开操作,或者在master操作再远程复制到各个节点

cat >/etc/kubernetes/kubelet-config.yaml <

四、创建kubelet启动文件

##每个节点都相同,可以分开操作,或者在master操作再远程复制到各个节点
cat >kubelet.service <

五、创建应用ClusterRoleBinding(自动approve CSR请求)
###分别用于自动approve client、renew client、renew server证书

cat > csr-crb.yaml <

六、部署kube-proxy组件

##主节点操作
1、创建kube-proxy证书签名请求(创建一次即可、后续扩容直接复制即可)
cfssl gencert -ca=/opt/k8s/work/ca.pem \
  -ca-key=/opt/k8s/work/ca-key.pem \
  -config=/opt/k8s/work/ca-config.json \
  -profile=kubernetes  kube-proxy-csr.json | cfssljson -bare kube-proxy
ls kube-proxy*

kubectl config set-cluster kubernetes \
  --certificate-authority=/opt/k8s/work/ca.pem \
  --embed-certs=true \
  --server=https://10.13.33.170:8443 \
  --kubeconfig=kube-proxy.kubeconfig
kubectl config set-credentials kube-proxy \
  --client-certificate=kube-proxy.pem \
  --client-key=kube-proxy-key.pem \
  --embed-certs=true \
  --kubeconfig=kube-proxy.kubeconfig
kubectl config set-context default \
  --cluster=kubernetes \
  --user=kube-proxy \
  --kubeconfig=kube-proxy.kubeconfig
kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig

##分发到各个节点
scp kube-proxy.kubeconfig root@$hostname:/etc/kubernetes/
2、配置启动文件
##主节点分发或者直接在work节点操作均可
###启动配置
cat >/etc/kubernetes/kube-proxy-config.yaml < /etc/systemd/system/kube-proxy.service <

七、启动各个节点的服务

#启动服务
systemctl daemon-reload && systemctl enable kube-proxy && systemctl restart kube-proxy
##查看启动状态
systemctl status kube-proxy
##网络路由情况
ipvsadm -ln
检查个节点是否就绪
kubectl get node