二進制安裝k8s集群(12)-安裝kubelet
- 2020 年 4 月 1 日
- 筆記
在上一篇文章里我們主要介紹master組件kube-scheduler的安裝,這裡我們開始介紹安裝worker組件kubelet,我們採用下載二進制binary製作linux systemd的方式安裝。這個組件也在下載的kubenetes包里(1.15.1版本),在以前文章里已經下載過(要科學上網或者搭個梯子),這裡就不再重複。另外kubelet與kube-apiserver交互我們開啟ssl,所以請提前製作好相關ssl證書(可以參考以前文章里製作docker的證書),並copy到配置目錄里。
copy二進制文件:
cp /opt/sw/kubernetes/install/kubernetes/server/bin/kubelet /usr/bin/ whereis kubelet

創建配置目錄:
kubelet和kube-apiserver會相互通訊,相互作為client端與server端。這裡kubelet作為server端的時候開啟ssl,請提前製作好相應的ssl證書並copy到配置目錄里。
mkdir -p /etc/kubernetes/kubelet mkdir -p /etc/kubernetes/kubelet/cert touch /etc/kubernetes/kubelet/k8s-kubelet.conf

創建配置文件:
kubelet需要和kube-apiserver交互,這個交互可以利用kubeconfig文件做為配置文件。所以與kube-controller-manager一樣,我們可以利用在kubectl安裝過程中我們創建的kubeconfig文件。同時kubelet負責創建銷毀pod,要為pod配置基礎鏡像,這裡設置為私有repo的public項目中的
172.20.11.41:1034/infra-pub/registry.access.redhat.com-rhel7-pod-infrastructure:latest(已經在以前文章里我們push到private repo中)。
cat > /etc/kubernetes/kubelet/k8s-kubelet.conf<<EOF KUBELET_ADDRESS="--address=0.0.0.0 --port=10250" KUBELET_TLS="--tls-cert-file=/etc/kubernetes/kubelet/cert/k8skubelet-server.crt --tls-private-key-file=/etc/kubernetes/kubelet/cert/k8skubelet-server.key" KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=172.20.11.41:1034/infra-pub/registry.access.redhat.com-rhel7-pod-infrastructure:latest" KUBELET_KUBE_CONFIG="--kubeconfig=/etc/kubernetes/kubeconfig/config" KUBELET_CLUSTER="--cluster-dns=10.254.10.2 --cluster-domain=cluster.local" KUBELET_ARGS="--fail-swap-on=false --hostname-override=172.20.11.43" EOF source /etc/kubernetes/kubelet/k8s-kubelet.conf

創建systemd unit文件:
touch /usr/lib/systemd/system/kubelet.service cat > /usr/lib/systemd/system/kubelet.service<<EOF [Unit] Description=Kubernetes Kubelet Service After=network.target network-online.target docker.service Wants=network-online.target docker.service [Service] Type=simple EnvironmentFile=-/etc/kubernetes/kubelet/k8s-kubelet.conf ExecStartPre=-source /etc/kubernetes/kubelet/k8s-kubelet.conf ExecStart=/usr/bin/kubelet ${KUBELET_ADDRESS} ${KUBELET_TLS} ${KUBELET_POD_INFRA_CONTAINER} ${KUBELET_KUBE_CONFIG} ${KUBELET_CLUSTER} ${KUBELET_ARGS} Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF source /etc/kubernetes/kubelet/k8s-kubelet.conf cat /usr/lib/systemd/system/kubelet.service


reload服務並設置開機啟動:
systemctl daemon-reload systemctl enable kubelet

啟動服務並檢查狀態:
systemctl start kubelet systemctl status kubelet
