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)