kubernetes集群安装指南:kube-proxy组件部署
发表于:2025-02-19 作者:千家信息网编辑
千家信息网最后更新 2025年02月19日,kube-proxy组件是要是为集群内pod应用提供endpoint服务,当我们为一个pod定义了svc时,kube-proxy会自动生成pod与svc的映射关系,并代理到集群内部或宿主机上。1 安装
千家信息网最后更新 2025年02月19日kubernetes集群安装指南:kube-proxy组件部署
kube-proxy组件是要是为集群内pod应用提供endpoint服务,当我们为一个pod定义了svc时,kube-proxy会自动生成pod与svc的映射关系,并代理到集群内部或宿主机上。
1 安装准备
特别说明:这里所有的操作都是在devops这台机器上通过ansible工具执行;kube-proxy 需要使用kubeconfig认证文件安全访问kube-apiserver:它监听 apiserver 中 service 和 endpoint 的变化情况,创建路由规则以提供服务 IP 和负载均衡功能。
1.1 环境变量定义
#################### Variable parameter setting ######################KUBE_NAME=kube-proxyK8S_INSTALL_PATH=/data/apps/k8s/kubernetesK8S_BIN_PATH=${K8S_INSTALL_PATH}/sbinK8S_LOG_DIR=${K8S_INSTALL_PATH}/logsK8S_CONF_PATH=/etc/k8s/kubernetesKUBE_CONFIG_PATH=/etc/k8s/kubeconfigCA_DIR=/etc/k8s/sslSOFTWARE=/root/softwareHOSTNAME=`hostname`VERSION=v1.14.2PACKAGE=kubernetes-server-${VERSION}-linux-amd64.tar.gzDOWNLOAD_URL=https://github.com/devops-apps/download/raw/master/kubernetes/$PACKAGEETH_INTERFACE=eth2LISTEN_IP=$(ifconfig | grep -A 1 ${ETH_INTERFACE} |grep inet |awk '{print $2}')CLUSTER_PODS_CIDR=172.16.0.0/20
1.2 下载和分发 kubernetes 二进制文件
访问kubernetes github 官方地址下载稳定的 realease 包至本机;
wget $DOWNLOAD_URL -P $SOFTWARE
将kubernetes 软件包分发到各个master节点服务器;
sudo ansible master_k8s_vgs -m copy -a "src=${SOFTWARE}/$PACKAGE dest=${SOFTWARE}/" -b
2 部署kube-proxy集群
2.1 安装kube-proxy二进制文件
### 1.Check if the install directory exists.if [ ! -d "$K8S_BIN_PATH" ]; then mkdir -p $K8S_BIN_PATHfiif [ ! -d "$K8S_LOG_DIR/$KUBE_NAME" ]; then mkdir -p $K8S_LOG_DIR/$KUBE_NAMEfiif [ ! -d "$K8S_CONF_PATH" ]; then mkdir -p $K8S_CONF_PATHfiif [ ! -d "$KUBE_CONFIG_PATH" ]; then mkdir -p $KUBE_CONFIG_PATHfi### 2.Install kube-proxy binary of kubernetes.if [ ! -f "$SOFTWARE/kubernetes-server-${VERSION}-linux-amd64.tar.gz" ]; then wget $DOWNLOAD_URL -P $SOFTWARE >>/tmp/install.log 2>&1ficd $SOFTWARE && tar -xzf kubernetes-server-${VERSION}-linux-amd64.tar.gz -C ./cp -fp kubernetes/server/bin/$KUBE_NAME $K8S_BIN_PATHln -sf $K8S_BIN_PATH/${KUBE_NAME} /usr/local/binchmod -R 755 $K8S_INSTALL_PATH
2.2 分发kubeconfig文件和证书文件
分发CA根证书
cd $CA_DIRansible worker_k8s_vgs -m copy -a "src=ca.pem dest=$CA_DIR" -b
分发kubeconfig认证文件
kube-proxy使用 kubeconfig文件连接访问 apiserver服务,该文件提供了 apiserver 地址、嵌入的 CA 证书和 kube-proxy服务器证书以及私钥:
cd $KUBE_CONFIG_PATHansible worker_k8s_vgs -m copy -a "src= kube-proxy.kubeconfig dest=$KUBE_CONFIG_PATH" -b
备注: 如果在前面小节已经同步过各组件kubeconfig和证书文件,此处可以不必执行此操作;
2.3 创建kube-proxy配置文件
cat >${K8S_CONF_PATH}/kube-proxy-config.yaml<
- bindAddress: 监听地址;
- clientConnection.kubeconfig: 连接 apiserver 的 kubeconfig 文件;
- clusterCIDR: kube-proxy 根据 --cluster-cidr 判断集群内部和外部流量,指定 --cluster-cidr 或 --masquerade-all 选项后 kube-proxy 才会对访问 Service IP 的请求做 SNAT;
- hostnameOverride: 参数值必须与 kubelet 的值一致,否则 kube-proxy 启动后会找不到该 Node,从而不会创建任何 ipvs 规则;
- mode: 使用 ipvs 模式;
2.4 创建kube-proxy 启动服务
cat >/usr/lib/systemd/system/${KUBE_NAME}.service <
2.5 检查服务运行状态
systemctl status kube-proxy|grep Active
确保状态为 active (running),否则查看日志,确认原因:
sudo journalctl -u kube-proxy
2.6 查看输出的 metrics
注意:以下命令在 kube-scheduler 节点上执行。kube-proxy 监听 10249 和 10256 端口:两个接口都对外提供 /metrics 和 /healthz 的访问。
sudo netstat -ntlp | grep kube-proxytcp 0 0 10.10.10.40:10249 0.0.0.0:* LISTEN 22604/kube-proxytcp 0 0 10.10.10.40:10256 0.0.0.0:* LISTEN 22604/kube-proxy
2.7 查看查看 ipvs 路由规则
sudo ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.20.40:8400 rr -> 172.16.3.2:8080 Masq 1 0 0 -> 172.16.3.3:8080 Masq 1 0 0 -> 172.16.3.4:8080 Masq 1 0 0 TCP 192.168.20.40:8497 rr -> 172.16.3.2:8500 Masq 1 0 0 -> 172.16.3.3:8500 Masq 1 0 0 -> 172.16.3.4:8500 Masq 1 0 0 TCP 10.10.10.40:8400 rr -> 172.16.3.2:8080 Masq 1 0 0 -> 172.16.3.3:8080 Masq 1 0 0 -> 172.16.3.4:8080 Masq 1 0 0
至此整个集群基本部署完成,关于kubernetes集群监控请参考:kubernetes集群安装指南:kubernetes集群插件部署。kube-proxy脚本可以从此处获取,
文件
集群
服务
证书
地址
规则
监听
组件
二进制
服务器
状态
节点
路由
认证
一致
均衡
两个
功能
原因
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
工业网络技术人工智能方面
云表服务器客户端升级
山东济南交通学院网络安全
云南霹雳网络技术
梅州产品追溯软件开发
巴勒斯坦服务器好吗
沈阳大学毕业论文查重数据库
电脑作为ftp服务器
腾飞安全服务器机柜
网络安全手抄报不怎么有字的
苏州服务器pdu电源定制
国微集团软件开发待遇
软件开发技巧教程
一个软件开发成功了怎样运行
网络安全学院新闻
达梦数据库表数据大小
研发足球大数据库
网络安全有哪些方面的知识
东方智谷小蚂蚁服务器怎么盈利
深圳网络安全学习线上学习
数据库中存储的最小单位
泰兴进口网络技术参考价格
数据库配置为xml 文件
浪潮服务器管理卡默认密码
银川app软件开发价格表
网络安全地址怎么更改
重庆嚞联互联网科技有公司
百卓网络技术有限公司
哪种数据库可以用sel查询
防火网络安全方面的英语话题