二进制安装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
