运行node组件
首先我们需要在master上面生成一个角色用于node上证书绑定认证
在master上面操作(65)
创建认证用户
kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
将在master上面生成的 bootstrap.kubeconfig ,kube-proxy.kubeconfig文件传到master和node节点上面去
scp -P 10022 jyapp@10.50.182.65:/opt/kubernetes/cfg/*.kubeconfig .
在node上操作(10.50.182.66)
将我们需要的文件(kubelet ,kube-proxy)拿出来,文件都在我们下载的二进制包中,其中*.sh为我们自定义的脚本
1[root@mail node_pkg]# ls 2kubelet kubelet.sh kube-proxy proxy.sh 3chmod +x *.sh 4 5mv kubelet kube-proxy /opt/kubernetes/bin/ 6chmod +x /opt/kubernetes/bin/* 7 8echo "export PATH=$PATH:/opt/kubernetes/bin" >> /etc/profile
安装kubelet
编辑安装脚本:
1[root@mail node_pkg]# cat kubelet.sh 2 3#!/bin/bash 4 5NODE_ADDRESS=${1:-"10.50.182.66"} 6DNS_SERVER_IP=${2:-"10.10.10.2"} 7 8cat <<EOF >/opt/kubernetes/cfg/kubelet 9 10KUBELET_OPTS="--logtostderr=true \\ 11--v=4 \\ 12--address=${NODE_ADDRESS} \\ 13--hostname-override=${NODE_ADDRESS} \\ 14--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \\ 15--experimental-bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \\ 16--cert-dir=/opt/kubernetes/ssl \\ 17--allow-privileged=true \\ 18--cluster-dns=${DNS_SERVER_IP} \\ 19--cluster-domain=cluster.local \\ 20--fail-swap-on=false \\ 21--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0" 22 23EOF 24 25cat <<EOF >/usr/lib/systemd/system/kubelet.service 26[Unit] 27Description=Kubernetes Kubelet 28After=docker.service 29Requires=docker.service 30 31[Service] 32EnvironmentFile=-/opt/kubernetes/cfg/kubelet 33ExecStart=/opt/kubernetes/bin/kubelet \$KUBELET_OPTS 34Restart=on-failure 35KillMode=process 36 37[Install] 38WantedBy=multi-user.target 39EOF 40 41systemctl daemon-reload 42systemctl enable kubelet 43systemctl restart kubelet
执行脚本安装,日志/var/log/message:
./kubelet.sh 10.50.182.66 10.10.10.2
安装kube-proxy:
编写安装脚本:
1[root@mail node_pkg]# cat proxy.sh 2#!/bin/bash 3 4NODE_ADDRESS=${1:-"10.50.182.66"} 5 6cat <<EOF >/opt/kubernetes/cfg/kube-proxy 7 8KUBE_PROXY_OPTS="--logtostderr=true \ 9--v=4 \ 10--hostname-override=${NODE_ADDRESS} \ 11--kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig" 12 13EOF 14 15cat <<EOF >/usr/lib/systemd/system/kube-proxy.service 16[Unit] 17Description=Kubernetes Proxy 18After=network.target 19 20[Service] 21EnvironmentFile=-/opt/kubernetes/cfg/kube-proxy 22ExecStart=/opt/kubernetes/bin/kube-proxy \$KUBE_PROXY_OPTS 23Restart=on-failure 24 25[Install] 26WantedBy=multi-user.target 27EOF 28 29systemctl daemon-reload 30systemctl enable kube-proxy 31systemctl restart kube-proxy
启动脚本:
1./proxy.sh 10.50.182.66 2 3ps aux |grep proxy 4报错查看:/var/log/message 5journalctl -f -t kube-proxy 6journalctl -u kube-proxy
查询集群状态:
1[root@localhost ~]# kubectl get csr 2NAME AGE REQUESTOR CONDITION 3node-csr-0EfKRr3ZU_UVFi5O8XLASGNxTzMrIsxMHg8oHJnY3JA 4m kubelet-bootstrap Pending 4node-csr-MTGLph0ohPwDJK6FtjJagnkjo3utvYjL1N52nBA1xRU 43m kubelet-bootstrap Pending
目前没有节点加入,我们将节点加入:
1kubectl certificate approve node-csr-0EfKRr3ZU_UVFi5O8XLASGNxTzMrIsxMHg8oHJnY3JA 2kubectl certificate approve node-csr-MTGLph0ohPwDJK6FtjJagnkjo3utvYjL1N52nBA1xRU
执行这条命令之后,会在node生成一个kubeconfig文件
