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

創建配置目錄:
mkdir -p /etc/kubernetes/kube-proxy touch /etc/kubernetes/kube-proxy/k8s-kube-proxy.conf

創建配置文件:
kube-proxy需要和kube-apiserver交互,這個交互可以利用kubeconfig文件做為配置文件。所以與kube-controller-manager一樣,我們可以利用在kubectl安裝過程中我們創建的kubeconfig文件。另外kube-proxy負責從kube-apiserver讀取service和endpoints的資訊,在host上創建iptable規則來實現k8s集群內部的負載均衡。對於kube-proxy的工作模式有iptable模式和ipvs模式,這裡我們配置採用iptable模式。當然ipvs模式對於k8s內部service非常多的時候效率更高,對於實際應用具體選用那種模式請根據實際需求來定。對這塊感興趣的同學可以多了解一下iptable,ipvs(LVS負載均衡就是用的這個),以及在k8s里創建的相應規則,這裡就不展開細節,擴展起來也可以寫一個系列了。
cat > /etc/kubernetes/kube-proxy/k8s-kube-proxy.conf<<EOF KUBE_CONFIG_FILE="--kubeconfig=/etc/kubernetes/kubeconfig/config" KUBE_PROXY_ARGS="" EOF source /etc/kubernetes/kube-proxy/k8s-kube-proxy.conf

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

reload服務並設置開機啟動:
systemctl daemon-reload systemctl enable kube-proxy
啟動服務並檢查狀態:
systemctl start kube-proxy systemctl status kube-proxy


