二進位安裝k8s集群(13)-安裝kube-proxy

在上一篇文章里我們主要介紹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

Tags: