kubernetes集群安装指南:kube-proxy组件部署
发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,kube-proxy组件是要是为集群内pod应用提供endpoint服务,当我们为一个pod定义了svc时,kube-proxy会自动生成pod与svc的映射关系,并代理到集群内部或宿主机上。1 安装
千家信息网最后更新 2024年11月25日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安全错误
数据库的锁怎样保障安全
网络安全例文
软件开发服务和即征即退
微型计算机数据库属于什么方面
贵阳市安全周网络安全培训
百安居网络技术上海有限公司
dell服务器主板双cpu
地理空间数据库分为几个部分
浪潮m6服务器能耗
印步数据库端口号
海康威视应用软件开发面试题
计算机网络技术 4级真题
服务器 ip配置
幼儿园网络安全环创作品
数据库2012日志过大
神州优车转正软件开发
魔兽世界多久开一个服务器
现实版网络安全大赛
vc 访问数据库
网络安全攻防教程
易语言数据库查询速度慢
节奏大师服务器连不上
网络安全为人民的字
珠海交警网络安全主题党日活动
数据库生成bin文件
软件开发前台和后台的时间
carsim 新建数据库
北大医信软件开发待遇
昆山途威网络技术
现实版网络安全大赛
炉前热分析仪软件开发论文