经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Kubernetes » 查看文章
二进制安装 kubernetes 1.12(四) - 部署 Node 节点组件
来源:cnblogs  作者:klvchen  时间:2019/1/24 9:29:36  对本文有异议

在 master 上操作

  1. vi /etc/profile
  2. export PATH=/opt/kubernetes/bin:$PATH
  3. source /etc/profile

将 kubelet-bootstrap 用户绑定到系统集群角色

  1. cd /opt/kubernetes/cfg
  2. kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

创建 kubeconfig 文件

  1. # 创建 kubelet bootstrapping kubeconfig
  2. BOOTSTRAP_TOKEN=674c457d4dcf2eefe4920d7dbb6b0ddc
  3. KUBE_APISERVER="https://192.168.0.205:6443"
  4. # 设置集群参数
  5. kubectl config set-cluster kubernetes --certificate-authority=/opt/kubernetes/ssl/ca.pem --embed-certs=true --server=${KUBE_APISERVER} --kubeconfig=bootstrap.kubeconfig
  6. # 设置客户端认证参数
  7. kubectl config set-credentials kubelet-bootstrap --token=${BOOTSTRAP_TOKEN} --kubeconfig=bootstrap.kubeconfig
  8. # 设置上下文参数
  9. kubectl config set-context default --cluster=kubernetes --user=kubelet-bootstrap --kubeconfig=bootstrap.kubeconfig
  10. # 设置默认上下文
  11. kubectl config use-context default --kubeconfig=bootstrap.kubeconfig

创建 kube-proxy kubeconfig 文件

  1. cp /iba/master-ca/kube-proxy.pem /opt/kubernetes/ssl/
  2. cp /iba/master-ca/kube-proxy-key.pem /opt/kubernetes/ssl/
  3. kubectl config set-cluster kubernetes --certificate-authority=/opt/kubernetes/ssl/ca.pem --embed-certs=true --server=${KUBE_APISERVER} --kubeconfig=kube-proxy.kubeconfig
  4. kubectl config set-credentials kube-proxy --client-certificate=/opt/kubernetes/ssl/kube-proxy.pem --client-key=/opt/kubernetes/ssl/kube-proxy-key.pem --embed-certs=true --kubeconfig=kube-proxy.kubeconfig
  5. kubectl config set-context default --cluster=kubernetes --user=kube-proxy --kubeconfig=kube-proxy.kubeconfig
  6. kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
  7. # 将这两个文件拷贝到Node节点/opt/kubernetes/cfg目录下
  8. bootstrap.kubeconfig kube-proxy.kubeconfig
  9. ansible node -m copy -a 'src=bootstrap.kubeconfig dest=/opt/kubernetes/cfg'
  10. ansible node -m copy -a 'src=kube-proxy.kubeconfig dest=/opt/kubernetes/cfg'

部署 kubelet 组件

  1. cd /iba/tools/kubernetes/server/bin
  2. ansible node -m copy -a 'src=kubelet dest=/opt/kubernetes/bin'
  3. ansible node -m copy -a 'src=kube-proxy dest=/opt/kubernetes/bin'
  4. ansible node -m shell -a 'chmod +x /opt/kubernetes/bin/kubelet'
  5. ansible node -m shell -a 'chmod +x /opt/kubernetes/bin/kube-proxy'

在 node1 上执行

  1. # 创建kubelet配置文件:
  2. cat > /opt/kubernetes/cfg/kubelet << EOF
  3. KUBELET_OPTS="--logtostderr=true --v=4 --hostname-override=192.168.0.206 --kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig --bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig --config=/opt/kubernetes/cfg/kubelet.config --cert-dir=/opt/kubernetes/ssl --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"
  4. EOF
  1. 参数说明:
  2. --hostname-override // 在集群中显示的主机名
  3. --kubeconfig // 指定kubeconfig文件位置,会自动生成
  4. --bootstrap-kubeconfig // 指定刚才生成的bootstrap.kubeconfig文件
  5. --cert-dir // 颁发证书存放位置
  6. --pod-infra-container-image // 管理Pod网络的镜像
  1. # kubelet.con?g配置文件如下
  2. cat > /opt/kubernetes/cfg/kubelet.config << EOF
  3. kind: KubeletConfiguration
  4. apiVersion: kubelet.config.k8s.io/v1beta1
  5. address: 192.168.0.206
  6. port: 10250
  7. readOnlyPort: 10255
  8. cgroupDriver: cgroupfs
  9. clusterDNS: ["10.0.0.2"]
  10. clusterDomain: cluster.local.
  11. failSwapOn: false
  12. authentication:
  13. anonymous:
  14. enabled: true
  15. EOF

systemd管理kubelet组件

  1. cat > /usr/lib/systemd/system/kubelet.service << -'EOF'
  2. [Unit]
  3. Description=Kubernetes Kubelet
  4. After=docker.service
  5. Requires=docker.service
  6. [Service]
  7. EnvironmentFile=/opt/kubernetes/cfg/kubelet
  8. ExecStart=/opt/kubernetes/bin/kubelet $KUBELET_OPTS
  9. Restart=on-failure
  10. KillMode=process
  11. [Install]
  12. WantedBy=multi-user.target
  13. -EOF

启动 kubelet

  1. chmod +x /opt/kubernetes/bin/kubelet
  2. systemctl daemon-reload
  3. systemctl enable kubelet
  4. systemctl start kubelet
  5. systemctl status kubelet
  6. # 把配置文件发送到 node2
  7. scp /opt/kubernetes/cfg/kubelet root@192.168.0.207:/opt/kubernetes/cfg/
  8. scp /opt/kubernetes/cfg/kubelet.config root@192.168.0.207:/opt/kubernetes/cfg/
  9. scp /usr/lib/systemd/system/kubelet.service root@192.168.0.207:/usr/lib/systemd/system/
  10. # 在 node2 上修改对应的 IP
  11. vi /opt/kubernetes/cfg/kubelet
  12. vi /opt/kubernetes/cfg/kubelet.config
  13. chmod +x /opt/kubernetes/bin/kubelet
  14. systemctl daemon-reload
  15. systemctl enable kubelet
  16. systemctl start kubelet
  17. systemctl status kubelet

在 master 审批 Node 加入集群

  1. cd /opt/kubernetes/bin
  2. kubectl get csr
  3. kubectl certificate approve XXXXX
  4. kubectl get node

部署kube-proxy组件

  1. # 在 node1 上执行
  2. # 创建kube-proxy配置文件:
  3. cat > /opt/kubernetes/cfg/kube-proxy << EOF
  4. KUBE_PROXY_OPTS="--logtostderr=true --v=4 --hostname-override=192.168.0.206 --cluster-cidr=10.0.0.0/24 --proxy-mode=ipvs --kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig"
  5. EOF
  6. # systemd管理kube-proxy组件
  7. cat > /usr/lib/systemd/system/kube-proxy.service << -'EOF'
  8. [Unit]
  9. Description=Kubernetes Proxy
  10. After=network.target
  11. [Service]
  12. EnvironmentFile=-/opt/kubernetes/cfg/kube-proxy
  13. ExecStart=/opt/kubernetes/bin/kube-proxy $KUBE_PROXY_OPTS
  14. Restart=on-failure
  15. [Install]
  16. WantedBy=multi-user.target
  17. -EOF
  18. chmod +x /opt/kubernetes/bin/kube-proxy
  19. systemctl daemon-reload
  20. systemctl enable kube-proxy
  21. systemctl start kube-proxy
  22. systemctl status kube-proxy
  23. # 把配置文件发送到 node2
  24. scp /opt/kubernetes/cfg/kube-proxy root@192.168.0.207:/opt/kubernetes/cfg/
  25. scp /usr/lib/systemd/system/kube-proxy.service root@192.168.0.207:/usr/lib/systemd/system/
  26. # 在 node2 上修改到对应的IP
  27. vi /opt/kubernetes/cfg/kube-proxy
  28. chmod +x /opt/kubernetes/bin/kube-proxy
  29. systemctl daemon-reload
  30. systemctl enable kube-proxy
  31. systemctl start kube-proxy
  32. systemctl status kube-proxy

原文链接:http://www.cnblogs.com/klvchen/p/10308724.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号