陈奇网络工作室

kubernetes群集安装指南:部署kube-proxy组件

云计算

当kube-proxy组件为群集中的pod APP应用程序提供endpoint服务时,如果为单个pod定义了svc,kube-proxy将自动生成pod与svc之间的映射关系,从而在群集内部或主机上创建映射关系

1准备安装

特殊说明:这里的所有操作都是在一台名为devops的机器上通过ansible工具完成的; kube-proxy必须使用kubeconfig验证文件安全地访问kube-apiserver。 kube-apiserver创建路由规则以侦听apiserver中的service和endpoint更改,并提供服务器IP和负载平衡功能。

1.1环境变量定义

# # # # # # # # # # variableparametersetting # # # # # # # variableparametersetting

KUBE_NAME=kube-proxy

k8s _ install _ path=/data/apps/k8s/kubernetes

k8s _ bin _ path=$ { k8s _ install _ path }/sbin

k8s _ log _ dir=$ { k8s _ install _ path }/logs

k8s _ conf _ path=/etc/k8s/kubernetes

kube _ config _ path=/etc/k8s/kube config

CA_DIR=/etc/k8s/ssl

SOFTWARE=/root/software

HOSTNAME=`hostname `

VERSION=v1.14.2

package=kubernetes-server-$ { version }-Linux-amd64.tar.gz

download _ URL=https://github.com/devo PS-apps/download/raw/master/kubernetes/$ package

ETH_INTERFACE=eth2

listen _ IP=$ ( ifconfig-a1 $ { eth _ interface } ); quot; {print$2}\\& quot; () ) ) ) ) ) ) ) ) ) 652 )

cluster _ pods _ CIDR=172.16.0.0/20

1.2下载和分发kubernetes二进制文件

访问kubernetes github的官方地址以本地下载稳定的发行版软件包;

wget $DOWNLOAD_URL -P $SOFTWARE

将kubernetes包分发到每个主节点服务器

sdoansiblemaster _ k8s _ vgs-mcopy-asrc=$ { software }/$ packaged est=$ { software }/- b

kube-proxy集群部署

2.1安装kube-proxy二进制文件

# #1. checkiftheinstalldirectoryexists。

if [! -d $K8S_BIN_PATH ]; then

mkdir -p $K8S_BIN_PATH

fi

if [! -d $K8S_LOG_DIR/$KUBE_NAME ]; then

mkdir -p $K8S_LOG_DIR/$KUBE_NAME

fi

if [! -d $K8S_CONF_PATH ]; then

mkdir -p $K8S_CONF_PATH

fi

if [! -d $KUBE_CONFIG_PATH ]; then

mkdir -p $KUBE_CONFIG_PATH

fi

# #2.安装kube-proxybinaryofkubernetes。

if [! - f $ software/kubernetes-server-$ { version }-Linux-amd64.tar.gz }; then

wget $ download _ URL-p $ software/tmp/install.log 21

fi

CD $ software tar-xzfkubernetes-server-$ { version }-Linux-amd64.tar.gz-c./

CP-fpkubernetes/server/bin/$ kube _ name $ k8s _ bin _ path

ln-SF $ k8s _ bin _ path/$ { kube _ name }/usr/local/bin

chmod -R 755 $K8S_INSTALL_PATH

2.2分发kube config文件和证书文件

分发CA根证书

cd $CA_DIR

ansibleworker _ k8s _ vgs-mcopy-asrc=ca.PEM dest=$ ca _ dir-b

分发kubeconfig认证文件

kube-proxy通过kubeconfig文件连接访问apiserver服务。 此文件包含apiserver地址、嵌入式CA证书、kube-proxy服务器证书和私钥。

cd $KUBE_CONFIG_PATH

ansibleworker _ k8s _ vgs-mcopy-asrc=kube-proxy.kubeconfigdest=$ kube _ config _ path-b

注:如果在上一部分中将证书文件与每个组件kubeconfig同步,则无需在此处执行此操作。

2.3创建kube-proxy配置文件

cat $ { k8s _ conf _ path }/kube-proxy-config.YAML eof

kind: KubeProxyConfiguration

API version:kube proxy.config.k8s.io/v1 alpha 1

客户端连接:

burst: 200

kube config:$ { kube _ config _ path }/kube-proxy.kube config

qps: 100

bindAddress: ${LISTEN_IP}

healthzbindaddress:$ { listen _ IP }:10256

metrics bindaddress:$ { listen _ IP }:10249

cluster CIDR:$ { cluster _ pods _ CIDR }

hostnameOverride: ${HOSTNAME}

模式: ipvs

端口范围:

kubeProxyIPTablesConfiguration :

masqueradeAll: false

kubeProxyIPVSConfiguration :

方案: RR

excludeCIDRs: []

EOF

绑定:地址侦听;

client connection.kubeconfig :连接到apiserver的kube config文件;

clusterCIDR: kube-proxy根据cluster-CIDR确定群集的内部和外部通信,指定cluster-CIDR或masquerade-all选项,然后使用kuster-CIDR

hostnameOverride :参数的值必须与kubelet的值一致。 如果不匹配,则在kube-proxy启动后找不到该Node,并且不会创建ipvs规则。

模式:使用ipvs模式;

2.4创建kube-proxy启动服务

cat/usr/lib/systemd/system/$ { kube _ name }.service eof

[Unit]

description=kuberneteskube-proxy服务器

documentation=https://github.com/Google cloud platform/kubernetes

After=network.target

服务

working directory=$ { k8s _ install _ path }

execstart=$ { k8s _ bin _ path }/$ { kube _ name }\\ & amp; quot;

- config=$ { k8s _ conf _ path }/kube-proxy-config.YAML\\ & amp; quot; \& quot;

-alsologtostderr=true\\\\& quot; \& quot;

-logtostderr=false\\\\& quot;

- log-dir=$ { k8s _ log _ dir }/$ { kube _ name }\\ & amp; quot; \& quot;

--v=2

Restart=on-failure

RestartSec=5

LimitNOFILE=65536

[安装]

WantedBy=multi-user.target

EOF

2.5检查服务的运行状态

系统状态属性

验证状态是否为活动(运行)。 如果不是,请检查日志并确认原因。

sudo journalctl -u kube-proxy

2.6查看输出的metrics

注意:以下命令将在kube-scheduler节点上运行: kube-proxy监听10249端口和10256端口。 这两个接口都对外提供对/metrics和/healthz的访问。

sudo netstat-ntlp|grep kube-proxy

TCP 010.10.10.40:102490.0.0.0:* listen 22604/kube-proxy

TCP 010.10.10.40:102560.0.0.0:* listen 22604/kube-proxy

2.7查看ipvs路由规则

sudo ipvsadm -ln

ipvirtualserverversion1.2.1( size=4096 ) )

prot local address:portschedulerflags

- remote address:portforwardweightactiveconninactconn

TCP 192.168.20.40:8400 rr

- 172.16.3.2:8080质量100

- 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质量100

- 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质量100

- 172.16.3.3:8080 Masq 1 0 0

- 172.16.3.4:8080 Masq 1 0 0

这样就完成了整个集群的基本部署。 有关kubernetes群集监视的信息,请参考《kubernetes群集安装指南》“引入kubernetes群集插件”。 kube-proxy脚本可以从这里获得。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3