kubernetes实践之五:Node节点安装

一:前言
1.Kubernetes版本1.8.5;node ip 10.116.82.28对于kuberentes1.8集群,必须关闭swap,否则kubelet启动将失败;修改 /etc/fstab 将,swap系统注释掉。
2.kubelet 启动时向 kube-apiserver 发送 TLS bootstrapping 请求,需要先将 bootstrap token ?件中的 kubelet-bootstrap ?户赋予 system:nodebootstrappercluster ??(role), 然后 kubelet 才能有权限创建认证请求(certificate signing requests):

在master节点执行:

点击(此处)折叠或打开

  1. cd /etc/kubernetes
  2. kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
3. 1.8版本之前.开启rbac,apiserver默认绑定system:nodes组到system:nodeclusterrole。v1.8之后,此绑定默认不存在,需要手工绑定,否则kubelet启动后会报认证错误,使用kubectl get nodes查看无法成为Ready状态

点击(此处)折叠或打开

  1. kubectl create clusterrolebinding kubelet-node-clusterbinding --clusterrole=system:node --user=system:node:10.116.82.28

  2.  kubectl describe clusterrolebindings kubelet-node-clusterbinding
多个node节点的话:
kubectl create clusterrolebinding kubelet-node-clusterbinding --clusterrole=system:node --group=system:nodes
二: 安装Kubelet

service文件:/usr/lib/systemd/system/kubelet.service. 负责master节点中的config文件到/etc/kubernetes/config

点击(此处)折叠或打开

  1. [Unit]
  2. Description=Kubernetes Kubelet Server
  3. Documentation=http://kubernetes.io/docs/admin/kubelet/
  4. After=docker.service
  5. Requires=docker.service

  6. [Service]
  7. WorkingDirectory=/var/lib/kubelet
  8. EnvironmentFile=-/etc/kubernetes/config
  9. EnvironmentFile=-/etc/kubernetes/kubelet
  10. ExecStart=/usr/bin/kubelet \
  11.             $KUBE_LOGTOSTDERR \
  12.             $KUBE_LOG_LEVEL \
  13.             $KUBELET_API_SERVER \
  14.             $KUBELET_ADDRESS \
  15.             $KUBELET_PORT \
  16.             $KUBELET_HOSTNAME \
  17.             $KUBE_ALLOW_PRIV \
  18.             $KUBELET_POD_INFRA_CONTAINER \
  19.             $KUBELET_ARGS
  20. Restart=on-failure

  21. [Install]
  22. WantedBy=multi-user.target
kubelet配置文件


点击(此处)折叠或打开

  1. ## kubelet (minion) config
  2. #
  3. ## The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
  4. KUBELET_ADDRESS="--address=10.116.82.28"
  5. #
  6. ## The port for the info server to serve on
  7. #KUBELET_PORT="--port=10250"
  8. #
  9. ## You may leave this blank to use the actual hostname
  10. KUBELET_HOSTNAME="--hostname-override=10.116.82.28"
  11. #
  12. ## location of the api-server
  13. #KUBELET_API_SERVER="--api-servers=http://10.116.137.196:8080"
  14. #
  15. ## pod infrastructure container
  16. #KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=sz-pg-oam-docker-hub-001.tendcloud.com/library/pod-infrastructure:rhel7"
  17. KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure"
  18. #
  19. ## Add your own!
  20. KUBELET_ARGS="--cgroup-driver=systemd --cluster-dns=10.254.0.2 --experimental-bootstrap-kubeconfig=/etc/kubernetes/bootstrap.kubeconfig --kubeconfig=/etc/kubernetes/kubelet.kubeconfig --require-kubeconfig --cert-dir=/etc/kubernetes/ssl --cluster-domain=cluster.local. --hairpin-mode promiscuous-bridge --serialize-image-pulls=false --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice"
启动kubelet
systemctl daemon-reload
systemctl enable kubelet
systemctl start kubelet
systemctl status kubelet

通过 kublet 的 TLS 证书请求
kubelet ?次启动时向 kube-apiserver 发送证书签名请求,必须通过后kubernetes 系统才会将该 Node 加?到集群。查看未授权的 CSR 请求.



通过 CSR 请求

kubectl certificate approve node-csr-nRoS_Xp89eNuqMmIQyE1SgllqjieGyYo5uMPtmhkfJ4



三: 安装Kube-proxy

1.yum install  conntrack-tools

2.service文件 vi /usr/lib/systemd/system/kube-proxy.service


点击(此处)折叠或打开

  1. [Unit]
  2. Description=Kubernetes Kube-Proxy Server
  3. Documentation=http://kubernetes.io/docs/admin/kube-proxy/
  4. After=network.target

  5. [Service]
  6. EnvironmentFile=-/etc/kubernetes/config
  7. EnvironmentFile=-/etc/kubernetes/proxy
  8. ExecStart=/usr/bin/kube-proxy \
  9.             $KUBE_LOGTOSTDERR \
  10.             $KUBE_LOG_LEVEL \
  11.             $KUBE_MASTER \
  12.             $KUBE_PROXY_ARGS
  13. Restart=on-failure
  14. LimitNOFILE=65536

  15. [Install]
  16. WantedBy=multi-user.target
3.配置文件  vi /etc/kubernetes/proxy

点击(此处)折叠或打开

  1. KUBE_PROXY_ARGS="--bind-address=10.116.82.28 --hostname-override=10.116.82.28 --kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig --cluster-cidr=10.254.0.0/16"
4.启动

systemctl daemon-reload
systemctl enable kube-proxy
systemctl start kube-proxy
systemctl status kube-proxy


请使用浏览器的分享功能分享到微信等