Kubernetes实战|Kubernetes实战(二十二)-kubernetes二进制文件方式部署集群(下)

上文我们讲解了 Master 节点上的 etcd、kube-apiserver、kube-controller-manager、kube-scheduler、docker 服务的部署,本文我们来介绍 Node 上的 kubelet、kube-proxy 服务部署。
一、准备工作 在工作 Node 上需要预先安装好 Docker 并且正常启动,二进制 Kubernetes 集群的 docker 是 v19.03.12 版本,相关文章已经为各位客官准备好了(版本注意选择 v19.03.12),传送门如下:
Docker 环境搭建和配置
到此我们就在 Master 节点上部署了 docker 服务。
二、集群部署 在客户端解压 kubernetes-node-linux-amd64.tar.gz 文件,将 kubectl、kubelet、kube-proxy 可执行文件复制到 /usr/bin 目录下,然后在 /usr/lib/systemd/system 目录下为各个服务创建 systemd 服务配置文件,然后配置各个服务的启动参数。
1、kubelet服务
kubelet服务依赖于Docker服务,设置 systemd服务配置文件 /usr/lib/systemd/system/kubelet.service,内容如下:

[Unit] Description=kubernetes Kubelet Server Documentation=https://github.com/GoogleCloudPlatform/Kubernetes After=docker.service Requires=docker.service[Service] WorkingDirectory=/var/lib/kubelet EnvironmentFile=/etc/kubernetes/kubelet ExecStart=/usr/bin/kubelet $KUBELET_ARGS Restart=on-failure[Install] WantedBy=multi-user.target

其中,WorkingDirectory 表示 kubelet 保存数据的目录,需要再启动 kubelet 服务之前创建。
配置文件 /etc/kubernetes/kubelet 的内容包括了 kubelet 的全部启动参数,主要的配置参数在变量 KUBELET_ARGS 中指定,/etc/kubernetes/kubelet 内容如下:
KUBELET_ARGS="--kubeconfig=/etc/kubernetes/kubeconfig \ --hostname-override=master \ --logtostderr=false \ --log-dir=/var/log/kubernetes \ --v=0"

对启动参数说明如下:
  • --kubeconfig:设置与 API Server 连接的相关配置,可以与 kube-controller-manager 使用的 kubeconfig 文件相同。
  • --hostname-override:设置本Node的名称
  • --logtostderr:设置为 false 表示将日志写入文件,不写入 stderr。
  • --log-dir:日志目录。
  • --v:日志级别。
2、kube-proxy服务
kube-proxy 服务依赖于 network 服务,设置 systemd 服务配置文件 /usr/lib/systemd/system/kube-proxy.service,内容如下:
[Unit] Description=kubernetes Kube-proxy Server Documentation=https://github.com/GoogleCloudPlatform/Kubernetes After=network.service Requires=network.service[Service] EnvironmentFile=/etc/kubernetes/proxy ExecStart=/usr/bin/kube-proxy $KUBE_PROXY_ARGS Restart=on-failure LinitNOFILE=65535[Install] WantedBy=multi-user.target

配置文件 /etc/kubernetes/proxy 的内容包括了 kube-proxy 的全部启动参数,主要的配置参数在变量 KUBE_PROXY_ARGS 中指定,/etc/kubernetes/proxy 内容如下:
KUBE_PROXY_ARGS="--kubeconfig=/etc/kubernetes/kubeconfig \ --logtostderr=false \ --log-dir=/var/log/kubernetes \ --v=2"

对启动参数说明如下:
  • --kubeconfig:设置与 API Server 连接的相关配置,可以与 kube-controller-manager 使用的 kubeconfig 文件相同。
  • --logtostderr:设置为 false 表示将日志写入文件,不写入 stderr。
  • --log-dir:日志目录。
  • --v:日志级别。
配置完成后,通过 systemctl 启动 kubelet 和 kube-proxy 服务:
$ systemctl daemon-reload $ systemctl enable kubelet $ systemctl start kubelet $ systemctl enable kube-proxy $ systemctl start kube-proxy

kubelet 默认采用向 Master 自动注册本 Node 的机制,在 Master 上查看各 Node 的状态,状态为 Ready 表示 Node 已经成功注册并且状态可用,命令如下:
——continue





【Kubernetes实战|Kubernetes实战(二十二)-kubernetes二进制文件方式部署集群(下)】

    推荐阅读