【Kubernetes】安装集群用到的组件

Kubernetes的不同版本,需要安装什么版本的docker,可以通过github上K8s源码,找到CHANGCH.中,找到所需的不同的docker版本

所有节点都需要安装

【基本组件】

安装docker

python 复制代码
# 安装docker
yum install docker-ce -y

#如果提示containerd(管理系统容器生命周期)自动安装失败,需要手动安装后,再执行docker命令:
wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6--3.3.el7.x86_64.rpm

yum -y install containerd.io-1.2.6--3.3.el7.x86_64.rpm

安装kubeadm

python 复制代码
# 查看版本相应版本信息
yum list kubeadm.x86_64 --showduplicates | sort -r

# 安装kubeadm
yum install kubeadm -y
python 复制代码
# 设置开机启动docker
systemctl enable --now docker

# 执行该命令,需要没有警报,有的话,必须提前解决掉
docker info 

安装kubelet

python 复制代码
#更改为国内镜像源
cat >/etc/sysconfig/kubelet<<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROPS --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1"
EOF

# 设置开机自启动
systemctl daemon -reload
systemctl enable --now kubelet

【高可用组件】

1、需要在3台Moster节点安装。

安装KeepAlived 和HAProxy

python 复制代码
# 直接安装命令,完成后,下面导入配置文件
yum install keepalived haproxy -y

# 所有Master节点配置HAProxy。
mkdir /etc/haproxy
vim /etc/haproxy/haproxy.cfg
python 复制代码
globale
	maxeenn 2000
	ulimit-n l6384
	log 127.0.0.1 local0 err 
	stats timeout 30s
defaults
	log globale
	mode http
	optian httplog
	timeout connect 5000
	timeout client 50000
	timeout server 50000
	timeout http-reguest 15s
	timeout http-keep-alive 15s
frontend monitor-in
	bind *:33305
	mode http
	option httplog
	monitor-uri monitor
listen stats
	bind *:8006
	mode http
	stats enable
	stats hide-version
	stats uri  /stats
	stats refresh  30s
	stats realm  Haproxy\ Statistics
	stats auth admin:admin
frontend k8s-master
	bind 0.0.0.0:16443
	bind 127.0.0.1:16443
	mode tcp
	option tcplog
	tcp-request inspect-delay 5s
	default_backend k8s-master
backend k8s-master
	mode tcp
	option tcplog
	option tcp-check
	balance roundrobin
	default-server inter 10s downinter 5s rise 2 fall slowstart 60s maxconn 250 maxqueue 256 weight 100
	server k8s-master01 192.18.0.100:6443 check
	server k8s-master02 192.18.0.106:6443 check
	server k8s-master03 192.18.0.107:6443 check

2、Master01/Master02/Master03节点配置keepalived (注意仅仅节点ip和网卡不同,其他均一致)

python 复制代码
mkdir /etc/keepalived
vim /etc/keepalived/keepalived.conf
python 复制代码
! Configuration File for keepalived
global_defs {
	router_id LVS_DEVEL
}
vrrp_script chk_apiserver{
	script "/etc/keepalived/check_apiserver.sh"
	interval 2
	weight -5
	fall 3
	rise 2
}
vrrp_instance VI_1 {
	state MASTER
	interrface ens33            # 此处各个master放自己的网卡
	mcast_stc_ip 192.168.0.100  # 此处各个master放自己的ip
	virtual_router_id 51
	priority 100
	advert_int 2
	authentication {
		auth_type PASS
		auth_pass K8SHA_KA_AUTH
	}
	virtual_ipaddress {
		192.168.0.200
	}
	# 健康检测在集群部署后,再开启
	# track_script {
	# 	chk_apiserver
	# }
}

配置KeepAlived健康检测文件:'cat /etc/keepalived/check_apiserver.sh' 。检测apiserver接口是否存活

python 复制代码
#!/bin/bash

err=0
for k in $(seq 1 5)
do
	check_code=$(pqrep kube-apiserver)
	if [[ $check_code == " " ]]; then
		err=$(expr $err + 1)
		sleep 5
		continue
	else
		err=0
		break
	fi
done
if [[ $err != "0" ]]; then
	echo "systemctl stop keepalived"
	/usr/bin/systemctl stop keepalived
	exit 1
else
	exit 0
fi

启动 KeepAlived 和HAProxy

python 复制代码
systemctl enable --now haproxy
systemctl enable --now keepalived
相关推荐
昌sit!2 小时前
K8S项目需求分析
云原生·容器·kubernetes
David爱编程3 小时前
Docker 安全全揭秘:防逃逸、防漏洞、防越权,一篇学会容器防御!
后端·docker·容器
广州山泉婚姻4 小时前
高并发场景下的智慧零工平台开发:Spring Boot 3+MyBatis-Flex架构深度实践
分布式·爬虫·云原生
上海运维Q先生4 小时前
Cilium动手实验室: 精通之旅---23.Advanced Gateway API Use Cases
云原生·k8s·cilium
炎码工坊5 小时前
微服务通信安全:OAuth2 从入门到实践
安全·网络安全·微服务·云原生·系统安全
遇见火星6 小时前
Kubernetes服务部署——RabbitMQ(集群版)
容器·kubernetes·rabbitmq
炎码工坊8 小时前
云原生安全实践:CI/CD流水线集成DAST工具
安全·网络安全·微服务·云原生·系统安全
从零开始学习人工智能8 小时前
深入解析 Nacos MCP Router:云原生时代的 MCP 服务调度中枢
云原生
程序员阿超的博客8 小时前
云原生核心技术 (4/12): Docker 进阶:镜像优化实战与 Docker Compose 揭秘
docker·云原生·容器
爱瑞瑞8 小时前
云原生学习笔记(六) 一文学会使用 Dockerfile:构建镜像的黄金剧本
云原生