云其它

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > 云其它 > Kubernetes 集群安装

Kubernetes 1.28.2集群安装过程中的关键步骤详解(最新推荐)

作者:明明跟你说过

Kubernetes K8s是Google开源的容器编排平台,最初由Borg项目发展而来,K8s 1.28版本引入了非正常节点关闭恢复、内置Sidecar容器支持、Job优化、Proxy改进和调度框架优化等功能,本文介绍Kubernetes 1.28.2集群安装过程中的关键步骤,感兴趣的朋友一起看看吧

一、引言

1、Kubernetes简介

Kubernetes(通常简称为K8s)是一个开源的容器编排平台,最初由Google开发,并于2014年发布为开源项目。它提供了一种自动化容器化应用程序部署、扩展和管理的方法。

Borg 的诞生:
谷歌的工程师们在面对大规模、分布式、可扩展应用的挑战时,创建了 Borg 系统,用于管理和运行谷歌的内部服务和应用。Borg 采用了容器化的思想,将应用程序打包成容器并在集群中运行。

Omega 的演进:
Borg 的经验在谷歌内部得到了积累和总结。在 Borg 的基础上,谷歌发展出了 Omega 系统,这是 Borg 的下一代版本,继续探索分布式系统管理的更高级别的抽象。

Kubernetes 的诞生:
2014年,Google 将 Borg 的一部分经验开源,推出了 Kubernetes 项目。Kubernetes 最初是由 Google、Red Hat、Microsoft 等公司共同推动的,旨在为云原生应用提供一个开源的容器编排和管理平台。可以说,k8s是站在Borg这个巨人的肩膀上而开发出的容器编排管理系统

推出后,Kubernetes 很快得到了开源社区的广泛关注和参与。云服务提供商、软件公司以及大量的开发者纷纷加入到 Kubernetes 的开发和维护中,形成了庞大的开源社区。

2、Kubernetes 1.28版本特性介绍

Kubernetes 1.28版本作为2023年的第二个主要版本更新,引入了一系列重要的新功能和改进。

非正常节点关闭恢复:

内置Sidecar容器支持:

Job优化:

Proxy改进:

调度框架优化:

3、安装前的准备工作

准备至少2台服务器,虚拟机或服务器都可以,资源配置如下

※ 安装k8s至少需要2G或以上内存

二、环境准备

1、禁用防火墙和SELinux

在两台机器上都要执行

关闭防火墙并禁止开机自启动

[root@master ~]# systemctl stop firewalld && systemctl disable firewalld
[root@node ~]# systemctl stop firewalld && systemctl disable firewalld 

 关闭SELinux

[root@master ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@master ~]# setenforce 0
[root@master ~]# getenforce
Permissive
[root@node ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@node ~]# setenforce 0
[root@node ~]# getenforce
Permissive 

2、设置时间同步 

[root@master ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
[root@master ~]# date
Tue Mar 19 14:10:22 CST 2024
[root@node ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
[root@node ~]# date
Tue Mar 19 14:10:22 CST 2024 

3、关闭swap交换分区 

[root@master ~]# swapoff -a
[root@node ~]# swapoff -a 

4、修改hosts文件

[root@master ~]# vi /etc/hosts
# 添加如下两行内容
192.168.40.110 master
192.168.40.111 node
[root@node ~]# vi /etc/hosts
# 添加如下两行内容
192.168.40.110 master
192.168.40.111 node

5、修改机器内核参数

[root@master ~]# modprobe br_netfilter
[root@master ~]# cat > /etc/sysctl.d/k8s.conf <<EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> EOF
[root@master ~]# sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
[root@node ~]# modprobe br_netfilter
[root@node ~]# cat > /etc/sysctl.d/k8s.conf <<EOF
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> EOF
[root@node ~]# sysctl -p /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1 

三、安装Docker与containerd

1、配置阿里repo源

[root@master ~]# yum install yum-utils device-mapper-persistent-data lvm2  -y
[root@master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@node ~]# yum install yum-utils device-mapper-persistent-data lvm2 -y 
[root@node ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2、安装container

[root@master ~]# yum install  containerd.io -y
 [root@node ~]# yum install  containerd.io -y

3、修改containerd配置文件

[root@master ~]# mkdir -p /etc/containerd
[root@master ~]# containerd config default > /etc/containerd/config.toml
[root@master ~]# vim /etc/containerd/config.toml
#将SystemdCgroup = false修改为SystemdCgroup = true
[root@node ~]# mkdir -p /etc/containerd
[root@node ~]# containerd config default > /etc/containerd/config.toml
[root@node ~]# vim /etc/containerd/config.toml
#将SystemdCgroup = false修改为SystemdCgroup = true

4、设置container开机自启动

[root@master ~]# systemctl enable containerd  --now
[root@node ~]# systemctl enable containerd  --now 

5、设置服务的端点地址

[root@master ~]# cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF
[root@node ~]# cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: false
EOF 

6、安装docker

[root@master ~]# yum install  docker-ce  -y
[root@master ~]# systemctl enable docker --now
[root@node ~]# yum install  docker-ce  -y
[root@node ~]# systemctl enable docker --now

7、添加docker镜像加速器

[root@master docker]# tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://ofcqsr1y.mirror.aliyuncs.com"]
> }
> EOF
[root@master docker]# sudo systemctl daemon-reload
[root@master docker]# sudo systemctl restart docker
[root@node docker]# tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://ofcqsr1y.mirror.aliyuncs.com"]
> }
> EOF
[root@node docker]# sudo systemctl daemon-reload
[root@node docker]# sudo systemctl restart docke  

四、安装kubeadm、kubelet和kubectl

1、配置软件源

[root@master ~]# vim /etc/yum.repos.d/kubernetes.repo
# 添加如下内容
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
[root@node ~]# vim /etc/yum.repos.d/kubernetes.repo
# 添加如下内容
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0

2、安装kubeadm、kubelet、kubectl

[root@master ~]# yum install kubelet-1.28.2 kubeadm-1.28.2 kubectl-1.28.2 -y
[root@node ~]# yum install kubelet-1.28.2 kubeadm-1.28.2 kubectl-1.28.2 -y 

3、设置kubelet开机自启动

[root@master ~]# systemctl enable kubelet
 [root@node ~]# systemctl enable kubelet

五、初始化Master节点

1、上传离线镜像包

离线镜像包我已经放到个人主页的资源中,大家可以自行下载

2、导入镜像

[root@master ~]# ctr -n=k8s.io images import k8s-1-28.tar.gz
[root@master ~]# ctr -n=k8s.io images import k8s-1-28-etcd.tar.gz

3、设置容器运行时

[root@master ~]# crictl config runtime-endpoint /run/containerd/containerd.sock

4、初始化Master节点

[root@master ~]# kubeadm init --kubernetes-version=1.28.2  --apiserver-advertise-address=192.168.40.110  --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.244.0.0/16
[root@master ~]#   mkdir -p $HOME/.kube
[root@master ~]#   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]#   sudo chown $(id -u):$(id -g) $HOME/.kube/config 

查看节点状态

[root@master ~]# kubectl get node
NAME     STATUS     ROLES           AGE   VERSION
master   NotReady   control-plane   66s   v1.28.2 

六、添加Work节点

  1、设置容器运行时

[root@node ~]# crictl config runtime-endpoint /run/containerd/containerd.sock

2、导入镜像

[root@node ~]# ctr -n=k8s.io images import k8s-1-28-etcd.tar.gz
[root@node ~]# ctr -n=k8s.io images import k8s-1-28.tar.gz 

3、将Work节点加入到集群

在Master节点上生成token

[root@master ~]# kubeadm token create --print-join-command

将生成的密钥考到node节点执行

[root@node ~]# kubeadm join 192.168.40.110:6443 --token 8zx14z.br9wctj9shxb08sq --discovery-token-ca-cert-hash sha256:6559345665c6beb70a9da42c2de6b85fc41f61d3dc3c527be3f7cc4629c503ab 

4、查看集群状态 

[root@master ~]# kubectl get node
NAME     STATUS     ROLES           AGE   VERSION
master   NotReady   control-plane   10m   v1.28.2
node     NotReady   <none>          5s    v1.28.2

5、为Work节点设置标签

 [root@master ~]# kubectl label nodes node node-role.kubernetes.io/work=work
#再次查看
[root@master ~]# kubectl get node
NAME     STATUS     ROLES           AGE   VERSION
master   NotReady   control-plane   10m   v1.28.2
node     NotReady    work                 5s    v1.28.2

七、安装网络插件calico

1、calico介绍

2、安装calico

[root@master ~]# curl -L -O https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml 
[root@master ~]# kubectl  apply -f calico.yaml

3、查看Pod状态

[root@master ~]# kubectl get pod -A 
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE
kube-system   calico-kube-controllers-658d97c59c-fbrgn   1/1     Running   0          5m31s
kube-system   calico-node-qd6v2                          1/1     Running   0          5m31s
kube-system   calico-node-s9khc                          1/1     Running   0          5m31s
kube-system   coredns-66f779496c-l6nqx                   1/1     Running   0          19m
kube-system   coredns-66f779496c-n7jn6                   1/1     Running   0          19m
kube-system   etcd-master                                1/1     Running   0          19m
kube-system   kube-apiserver-master                      1/1     Running   0          19m
kube-system   kube-controller-manager-master             1/1     Running   5          19m
kube-system   kube-proxy-7wbhh                           1/1     Running   0          9m15s
kube-system   kube-proxy-bb47r                           1/1     Running   0          19m
kube-system   kube-scheduler-master                      1/1     Running   5          19m

八、总结

到此这篇关于Kubernetes 1.28.2集群安装过程中的关键步骤详解(最新推荐)的文章就介绍到这了,更多相关Kubernetes 集群安装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文