51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

k8s 安装(1.23)

k8s安装

K8S所有节点环境准备:

硬件准备:至少2核 (不然报错)

1.虚拟机操作系统环境准备

参考链接:
https://kubernetes.io/zh/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

2.关闭swap分区

# 临时关闭
swapoff -a && sysctl -w vm.swappiness=0
# 基于配置文件关闭
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab

3.确保各个节点MAC地址或product_uuid唯一

ifconfig  ens33  | grep ether | awk '{print $2}'
cat /sys/class/dmi/id/product_uuid 

温馨提示:
一般来讲,硬件设备会拥有唯一的地址,但是有些虚拟机的地址可能会重复。
Kubernetes使用这些值来唯一确定集群中的节点。 如果这些值在每个节点上不唯一,可能会导致安装失败。

4.检查网络节点是否互通

简而言之,就是检查你的k8s集群各节点是否互通,可以使用ping命令来测试。

5.允许iptable检查桥接流量

cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

6.检查端口是否被占用

参考链接: https://kubernetes.io/zh-cn/docs/reference/networking/ports-and-protocols/

7.检查docker的环境

每个节点都要安装docker 环境:

参考:https://www.baimeidashu.com/10639.html

也可以直接用 现成的包:

docker-compose: https://url69.ctfile.com/d/253469-56512814-d1a39a?p=2206 (访问密码: 2206)

离线安装:

tar xf baimei-docker-20.10.tar.gz
./install-docker.sh install
source /usr/share/bash-completion/completions/docker

8.禁用防火墙

systemctl disable --now firewalld

9.禁用selinux

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config 
grep ^SELINUX= /etc/selinux/config

10.配置host解析

cat >> /etc/hosts <<'EOF'
10.0.0.231 master231
10.0.0.232 worker232
10.0.0.233 worker233
10.0.0.250 harbor.baimei.com
EOF

11.所有节点创建自定义证书目录

mkdir -pv /etc/docker/certs.d/harbor.baimei.com

下面会复制证书的

二.安装harbor

方案1:

搭建 harbor服务器: 连接

harbor 配置证书: 连接

方案2: 现成的包 --- 离线安装

1.下载harbor软件
[root@harbor250 ~]# wget http://192.168.11.253/Kubernetes/day01-/softwares/baimei-harbor.tar.gz


	2.解压harbor软件包
[root@harbor250 ~]# tar xf baimei-harbor.tar.gz -C /baimei/softwares/
	
	
	3.安装harbor
[root@harbor250 ~]# cd /baimei/softwares/harbor/
[root@harbor250 harbor]# 
[root@harbor250 harbor]# ./install.sh 

三、复制证书

将客户端证书推送到所有的k8s集群

[root@harbor250 harbor]# scp certs/custom/client/* master231:/etc/docker/certs.d/harbor.baimei.com/  
[root@harbor250 harbor]# 
[root@harbor250 harbor]# scp certs/custom/client/* worker232:/etc/docker/certs.d/harbor.baimei.com/
[root@harbor250 harbor]# 
[root@harbor250 harbor]# scp certs/custom/client/* worker233:/etc/docker/certs.d/harbor.baimei.com/

挑选任意K8S节点测试harbor能否正常访问

docker login -u admin -p 1 harbor.baimei.com

三.所有节点安装kubeadm,kubelet,kubectl

1.需要在每台机器上安装以下的软件包:
	kubeadm:
		用来初始化集群的指令。
	kubelet:
		在集群中的每个节点上用来启动Pod和容器等。
	kubectl:
		用来与集群通信的命令行工具。

	kubeadm不能帮你安装或者管理kubelet或kubectl,所以你需要确保它们与通过kubeadm安装的控制平面(master)的版本相匹配。 如果不这样做,则存在发生版本偏差的风险,可能会导致一些预料之外的错误和问题。 

	然而,控制平面与kubelet间的相差一个次要版本不一致是支持的,但kubelet的版本不可以超过"API SERVER"的版本。 例如,1.7.0版本的kubelet可以完全兼容1.8.0版本的"API SERVER",反之则不可以。

2.所有节点安装kubeadm,kubelet,kubectl

1>.配置软件源

cat  > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
EOF

2>.查看kubeadm的版本(将来你要安装的K8S时请所有组件版本均保持一致!)

yum -y list kubeadm --showduplicates | sort -r

3>.安装kubeadm,kubelet,kubectl软件包

 yum -y install kubeadm-1.23.17-0 kubelet-1.23.17-0 kubectl-1.23.17-0   #在线 安装

tar xf baimei-k8s-1.23.17.tar.gz  && yum -y localinstall k8s-1.23.17/*.rpm  # 离线安装

4>.启动kubelet服务(若服务启动失败时正常现象,其会自动重启,因为缺失配置文件,初始化集群后恢复!此步骤可跳过!)

systemctl enable --now kubelet
systemctl status kubelet

参考链接:

https://kubernetes.io/zh/docs/tasks/tools/install-kubectl-linux

四.初始化master节点

(1)使用kubeadm初始化master节点

kubeadm init --kubernetes-version=v1.23.17 --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.100.0.0/16 --service-cidr=10.200.0.0/16  --service-dns-domain=baimei.com

如果失败,可以执行 kubeadm reset 然后重新 init

注意这里的 docker版本要匹配 ,用20 版本的就可以。

可能遇到错误:

The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed wit
解决方案:
https://blog.csdn.net/qq_43762191/article/details/125567365


swapoff -a
kubeadm reset
systemctl daemon-reload
systemctl restart kubelet
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

(2)拷贝授权文件,用于管理K8S集群

[root@master231 ~]# mkdir -p $HOME/.kube
[root@master231 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master231 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

(3)查看master组件

kubectl get componentstatuses   或者 kubectl get cs

五.配置所有worker节点加入k8s集群

1.加入集群,注意TOKEN,你的值和我不一样哟!(建议复制你的master初始化输出的命令)

docker load -i baimei-worker-node.tar.gz 

kubeadm join 10.0.0.231:6443 --token e1cag2.bnl0mugbnh167979 \
	--discovery-token-ca-cert-hash sha256:8a9c1b9e33ab65835e382faa75221e002b19dc3872d47752590754ffbc698789

上边这个是在 master231节点上生成的, 一会把这个 在 worker232,worker233 上运行

忘记令牌,master节点执行kubeadm token create --print-join-command,生成新令牌

2.master查看集群节点数量

kubectl get nodes

或者 :kubectl get no 

加入失败参考:

kubeadm reset

systemctl daemon-reload && systemctl restart docker kubelet

https://blog.csdn.net/zihany8/article/details/122307086

kubectl get nodes

到此为止 k8s 集群 搭建完毕。

6. 初始化网络组件

这里用 flannel , 其实 calico 也可以的。

接下来我们安装一下CNI 插件,来部署一下 镜像 :连接

1集群安装:

https://url69.ctfile.com/d/253469-56526995-1335ef?p=2206 (访问密码: 2206)

赞(0)
未经允许不得转载:工具盒子 » k8s 安装(1.23)