k8s集群部署四:node节点组件部署

以下操作均在node节点上进行

从master上拷贝kubeconfig文件到node节点


scp /root/ssl/*kubeconfig 10.10.99.233:/opt/kubernetes/cfg/
scp /root/ssl/*kubeconfig 10.10.99.228:/opt/kubernetes/cfg/

下载并安装node节点组件


下载二进制软件包

https://dl.k8s.io/v1.9.0/kubernetes-server-linux-amd64.tar.gz

解压后找到kubelet kube-proxy这两个文件。

也可以从server端拷贝过来

部署node节点组件

chmod +x kubelet kube-proxy 
mv kubelet kube-proxy /opt/kubernetes/bin/

kubelet配置


指定node节点ip和dns的ip

NODE_ADDRESS="10.10.99.233"
DNS_SERVER_IP="192.168.8.8"

NODE_ADDRESS的值一定是当前配置的node的ip

创建kubelet配置文件

cat <<EOF >/opt/kubernetes/cfg/kubelet

KUBELET_OPTS="--logtostderr=true \\
--v=4 \\
--address=${NODE_ADDRESS} \\
--hostname-override=${NODE_ADDRESS} \\
--kubeconfig=/opt/kubernetes/cfg/kubelet.kubeconfig \\
--experimental-bootstrap-kubeconfig=/opt/kubernetes/cfg/bootstrap.kubeconfig \\
--cert-dir=/opt/kubernetes/ssl \\
--allow-privileged=true \\
--cluster-dns=${DNS_SERVER_IP} \\
--cluster-domain=cluster.local \\
--fail-swap-on=false \\
--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0"

EOF

创建kubelet启动文件

cat <<EOF >/usr/lib/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet
After=docker.service
Requires=docker.service

[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kubelet
ExecStart=/opt/kubernetes/bin/kubelet \$KUBELET_OPTS
Restart=on-failure
KillMode=process

[Install]
WantedBy=multi-user.target
EOF

启动kubelet

systemctl daemon-reload
systemctl start kubelet.service
systemctl status kubelet.service
systemctl enable kubelet.service

这里可能会有个报错导致启动失败:error: failed to run Kubelet: cannot create certificate signing request: certificatesigningrequests.certificates.k8s.io is forbidden: User "kubelet-bootstrap" cannot create certificatesigningrequests.certificates.k8s.io at the cluster scope

原因是:kubelet-bootstrap并没有权限创建证书。所以要创建这个用户的权限并绑定到这个角色上。

解决方法是在master上执行kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

kube-proxy配置


创建kube-proxy配置文件

cat <<EOF >/opt/kubernetes/cfg/kube-proxy
KUBE_PROXY_OPTS="--logtostderr=true \
--v=4 \
--hostname-override=${NODE_ADDRESS} \
--kubeconfig=/opt/kubernetes/cfg/kube-proxy.kubeconfig"
EOF

创建kube-proxy启动程序

cat <<EOF >/usr/lib/systemd/system/kube-proxy.service
[Unit]
Description=Kubernetes Proxy
After=network.target

[Service]
EnvironmentFile=-/opt/kubernetes/cfg/kube-proxy
ExecStart=/opt/kubernetes/bin/kube-proxy \$KUBE_PROXY_OPTS
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

启动kube-proxy

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

master端检查node配置情况

这一步在master上执行

查看node证书请求

kubectl get csr

这里写图片描述

可以看到有一个节点正在等待master端同意其证书请求。(因为这里先部署了一个节点所以只有一条)

同意node证书请求

 kubectl certificate approve node-csr-DtfAV82WBocXHy732dj0C9LQat1Atk0QuDDJmXMH2k8

这里写图片描述

命令后面接上NAME,请求的状态已经变成了同意。

查看节点信息

kubectl get nodes

这里写图片描述

刚刚部署的结点已经变成ready状态

部署好第二个node后

这里写图片描述

这里在查看node状态时,因为node2刚同意证书请求,其还需要几秒钟准备时间,所以状态为notready,准备好后变为ready,两个节点正常。

至此,整个集群部署完成!!

阅读更多
版权声明:文章内容来自于网络和博主自身学习体会,转载请注明出处,欢迎留言大家一起讨论学习~~ https://blog.csdn.net/sinat_35930259/article/details/79946298
个人分类: Kubernetes
上一篇k8s集群部署三:master节点组件部署
下一篇k8s集群部署五:在集群中运行一个测试示例
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭