離線安裝k8s的node

目錄

1.從k8s的github上下載最新版本的安裝包。https://github.com/kubernetes/kubernetes/releases

2.通過winscp把windows上的下載的安裝包copy到centos虛擬機上

3.更改各虛擬機的hostname, 比如一個爲k8s-node1:hostnamectl set-hostname k8s-node1

4.假設etcd和kube-apiserver的ip都是:10.6.119.106, node1的ip爲10.6.119.107

5.利用tar -xvzf命令解壓後, 把kube-proxy和kubelet複製到/usr/local/bin/下。  如:

6.在/usr/lib/systemd/system目錄下創建kube-proxy.service,內容如下:

7. 在/etc/下創建/etc/kube-node/, 然後創建配置/etc/kube-node/kube-proxy.conf文件

8.在/var/lib下創建/var/lib/kube-node

9.在/etc/kube-node/, 然後創建配置/etc/kube-node/kube-node.conf文件

10.重複6-8, 建立kubelet的service和conf文件。

11. 啓動kubelet.service 和kube-proxy.service

12. 如果出錯,查看服務的錯誤日誌,去/var/log/message

13. 如果出現 connect: no route to host, 可能是防火牆問題。 可以安裝telnet, 用telnet ip port測試下。

14. 安裝成功後可以在k8s master上去看下k8s node是否註冊成功。 具體使用kubectl get nodes


 

1.從k8s的github上下載最新版本的安裝包。https://github.com/kubernetes/kubernetes/releases

2.通過winscp把windows上的下載的安裝包copy到centos虛擬機上

3.更改各虛擬機的hostname, 比如一個爲k8s-node1:hostnamectl set-hostname k8s-node1

4.假設etcd和kube-apiserver的ip都是:10.6.119.106, node1的ip爲10.6.119.107

5.利用tar -xvzf命令解壓後, 把kube-proxy和kubelet複製到/usr/local/bin/下。  如:

mv /root/Downloads/kubernetes/node/bin/kube-proxy /usr/local/bin/kube-proxy

mv /root/Downloads/kubernetes/node/bin/kubelet /usr/local/bin/kubelet

 

6.在/usr/lib/systemd/system目錄下創建kube-proxy.service,內容如下:

[Unit]

Description=Kubernetes Kube-Proxy Service

Documentation=https://github.com/GoogleCloudPlatform/kubernetes

After=network.target

[Service]

WorkingDirectory=/var/lib/kube-node/

EnvironmentFile=-/etc/kube-node/kube-node.conf

EnvironmentFile=-/etc/kube-node/kube-proxy.conf

ExecStart=/usr/local/bin/kube-proxy   $KUBE_LOGTOSTDERR $KUBE_LOG_LEVEL  $KUBE_MASTER $KUBE_PROXY_ARGS

Restart=on-failure

LimitNOFILE=65536

[Install]

WantedBy=multi-user.target

 

7. 在/etc/下創建/etc/kube-node/, 然後創建配置/etc/kube-node/kube-proxy.conf文件

KUBE_PROXY_ARGS=""

 

8.在/var/lib下創建/var/lib/kube-node

 

9.在/etc/kube-node/, 然後創建配置/etc/kube-node/kube-node.conf文件

KUBE_LOGTOSTDERR="--logtostderr=true"

# journal message level, 0 is debug

KUBE_LOG_LEVEL="--v=0"

# Should this cluster be allowed to run privileged docker containers

KUBE_ALLOW_PRIV="--allow-privileged=false"

# How the controller-manager, scheduler, and proxy find the apiserver

KUBE_MASTER="--master=http://10.6.119.106:8080"

KUBELET_API_SERVER="--api-servers=http://10.6.119.106:8080"

 

 

10.重複6-8, 建立kubelet的service和conf文件。

kubelet.service 如下:

[Unit]

Description=Kubernetes Kubelet Server

Documentation=https://github.com/GoogleCloudPlatform/kubernetes

After=docker.service

Requires=docker.service

[Service]

WorkingDirectory=/var/lib/kube-node/

EnvironmentFile=-/etc/kube-node/kubelet.conf

ExecStart=/usr/local/bin/kubelet $KUBELET_ARGS

Restart=on-failure

KillMode=process

[Install]

WantedBy=multi-user.target

 

kubelet.conf 如下:

#node 本機ip

KUBELET_HOSTNAME="--hostname-override=10.6.119.107"

#docker 倉庫的地址

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=10.6.119.106/harbor/pod-infrastructure:latest"

KUBELET_ARGS="--enable-server=true --enable-debugging-handlers=true  --fail-swap-on=false --kubeconfig=/etc/kube-node/kubeconfig"

 

上面kubelet.conf引用的kubeconfig文件的內容如下:

apiVersion: v1

kind: Config

users:

- name: kubelet

clusters:

- name: kubernetes

  cluster:

    server: http://10.6.119.106:8080

contexts:

- context:

    cluster: kubernetes

    user: kubelet

  name: service-account-context

current-context: service-account-context

 

 

 

11. 啓動kubelet.service 和kube-proxy.service

systemctl daemon-reload

systemctl enable kube-proxy.service

systemctl start kube-proxy.service

systemctl enable kubelet.service

systemctl start kubelet.service

 

12. 如果出錯,查看服務的錯誤日誌,去/var/log/message

 

13. 如果出現 connect: no route to host, 可能是防火牆問題。 可以安裝telnet, 用telnet ip port測試下。

解決辦法是:清除防火牆規則:iptables -F

 

或者把8080加到防火牆規則裏

firewall-cmd --zone=public --add-port=8080/tcp --permanent

 

14. 安裝成功後可以在k8s master上去看下k8s node是否註冊成功。 具體使用kubectl get nodes

[root@k8s-master ~]# kubectl get nodes

NAME        STATUS   ROLES    AGE   VERSION

k8s-node1   Ready    <none>   16h   v1.17.4

 

調試和離線文件參考:https://blog.csdn.net/muzizongheng/article/details/105067876

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章