016.Kubernetes二进制部署所有节点kube-proxy
目录
一 部署 kube-proxy
1.1 安装kube-proxy
1.2 分发kube-proxy
1.3 创建kube-scheduler证书和私钥
1.4 创建和分发kubeconfig
1.5 创建kube-proxy 配置文件
1.6 分发配置文件
1.7 创建kube-proxy的systemd
1.8 分发kube-proxy systemd
二 启动并验证
2.1 启动kube-proxy 服务
2.2 检查kube-proxy 服务
2.3 查看监听端口
2.4 查看ipvs 路由规则
回到顶部
一 部署 kube-proxy
kube-proxy 运行在所有节点上,它监听 apiserver 中 service 和 endpoint 的变化情况,创建路由规则以提供服务 IP 和负载均衡功能。
1.1 安装kube-proxy
提示:k8smaster01节点已下载相应二进制,可直接分发至node节点。
1.2 分发kube-proxy
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for all_ip in ${ALL_IPS[@]}
4 do
5 echo ">>> ${all_ip}"
6 scp kubernetes/server/bin/kube-proxy root@${all_ip}:/opt/k8s/bin/
7 ssh root@${all_ip} "chmod +x /opt/k8s/bin/*"
8 done
复制代码
1.3 创建kube-scheduler证书和私钥
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# cat > kube-proxy-csr.json <>> ${node_name}"
27 scp kube-proxy.kubeconfig root@${node_name}:/etc/kubernetes/
28 done
复制代码
1.5 创建kube-proxy 配置文件
从 v1.10 开始,kube-proxy 部分参数可以配置文件中配置。可以使用 --write-config-to 选项生成该配置文件。
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# cat > kube-proxy-config.yaml.template <>> ${ALL_NAMES[i]}"
6 sed -e "s/##ALL_NAME##/${ALL_NAMES[i]}/" -e "s/##ALL_IP##/${ALL_IPS[i]}/" kube-proxy-config.yaml.template > kube-proxy-config-${ALL_NAMES[i]}.yaml.template
7 scp kube-proxy-config-${ALL_NAMES[i]}.yaml.template root@${ALL_NAMES[i]}:/etc/kubernetes/kube-proxy-config.yaml
8 done
复制代码
1.7 创建kube-proxy的systemd
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# cat > kube-proxy.service <>> ${all_name}"
6 scp kube-proxy.service root@${all_name}:/etc/systemd/system/
7 done #分发system
复制代码
回到顶部
二 启动并验证
2.1 启动kube-proxy 服务
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for all_ip in ${ALL_IPS[@]}
4 do
5 echo ">>> ${all_ip}"
6 ssh root@${all_ip} "mkdir -p ${K8S_DIR}/kube-proxy"
7 ssh root@${all_ip} "modprobe ip_vs_rr"
8 ssh root@${all_ip} "systemctl daemon-reload && systemctl enable kube-proxy && systemctl restart kube-proxy"
9 done #启动服务前必须先创建工作目录
复制代码
2.2 检查kube-proxy 服务
复制代码
1 [root@k8smaster01 ~]# source /opt/k8s/bin/environment.sh
2 [root@k8smaster01 ~]# for all_ip in ${ALL_IPS[@]}
3 do
4 echo ">>> ${all_ip}"
5 ssh root@${all_ip} "systemctl status kube-proxy|grep Active"
6 done
复制代码
2.3 查看监听端口
kube-proxy 监听 10249 和 10256 端口:
10249:对外提供 /metrics;
10256:对外提供 /healthz 的访问。
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for all_ip in ${ALL_IPS[@]}
4 do
5 echo ">>> ${all_ip}"
6 ssh root@${all_ip} "sudo netstat -lnpt|grep kube-prox"
7 done
复制代码
clipboard
2.4 查看ipvs 路由规则
复制代码
1 [root@k8smaster01 ~]# cd /opt/k8s/work
2 [root@k8smaster01 work]# source /opt/k8s/bin/environment.sh
3 [root@k8smaster01 work]# for all_ip in ${ALL_IPS[@]}
4 do
5 echo ">>> ${all_ip}"
6 ssh root@${all_ip} "/usr/sbin/ipvsadm -ln"
7 done
复制代码
可见所有通过 https 访问 K8S SVC kubernetes 的请求都转发到 kube-apiserver 节点的 6443 端口。
作者:木二
出处:http://www.cnblogs.com/itzgr/
关于作者:云计算、虚拟化,Linux,多多交流!
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接!如有其他问题,可邮件(xhy@itzgr.com)咨https://www.cnblogs.com/itzgr/p/11883391.html