kubernetes集群安装指南:kube-proxy组件部署
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,kube-proxy组件是要是为集群内pod应用提供endpoint服务,当我们为一个pod定义了svc时,kube-proxy会自动生成pod与svc的映射关系,并代理到集群内部或宿主机上。1 安装
千家信息网最后更新 2025年02月07日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安全错误
数据库的锁怎样保障安全
数据库错误码162
crm管理软件开发
数据库名称为db1
软件开发公司怎么走得稳
it软件开发服务放心可靠
软件开发需求申请单
老板手机名录数据库
网络技术学习壁纸ins
枚举opc服务器出错
定时提醒软件开发
腾讯云服务器哪个版本好用
软件开发 找项目
linux服务器性能
曲江网络安全宣传周
网络安全为主题的板报
网络安全培训怎么招生
网络安全涉及的网络层次
我国网络安全问题有哪些问题
软件开发税金几个点
注册数据库
金融科技与互联网理财
网络安全风险意识培训答案
jsp注册登录数据库
云计算属于网络技术吗
2020 运营商服务器集采结果
帝兴软件开发有限公司
关系数据库的数据逻辑结构
数据库插入时乱码
服务器主机如何赚钱
搭建代理服务器的多种方式