自学内容网 自学内容网

ubuntu22.4部署kubernetes1.31.0

一、准备阶段:

服务器资源规划

cpu内存硬盘角色主机名ip
2c3.3G18Gmasterk8s-master01192.168.71.111
2c3.3G18Gworkerk8s-worker01192.168.71.112
2c3.3G18Gworkerk8s-worker02192.168.71.113

二、主机基础配置:

step 1:修改主机名

hostnamectl set-hostname k8s-master01
hostnamectl set-hostname k8s-worker01
hostnamectl set-hostname k8s-worker02

step 2:配置hosts

vim /etc/hosts
192.168.71.111 k8s-master01
192.168.71.112 k8s-worker01
192.168.71.113 k8s-worker02

验证
ping -c 2 k8s-master01
在这里插入图片描述

step 3:修改时区,同步时间。

apt install ntpdate
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate cn.pool.ntp.org
crontab -e
0 0 * * * ntpdate cn.pool.ntp.org

在这里插入图片描述

step 4:配置内核转发和网桥过滤。

添加配置文件

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

加载模块

modprobe overlay
modprobe br_netfilter

添加网桥过滤及内核转发配置文件

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

安装Ipset及ipvsadm

sudo apt -y install ipset ipvsadm

配置ipvsadm模块,添加需要添加的模块

cat  << EOF | tee /etc/modules-load.d/ipvs.conf
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF

编写脚本,加载模块

cat << EOF | tee ipvs.sh
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
chmod +x ipvs.sh
./ipvs.sh

step 5:关闭swap分区,注释掉/etc/fstab中的swap部分。

swapoff -a

三、容器运行时安装:

step 6:下载containerd并上传到服务器,下载地址https://github.com/containerd/containerd/releases。

在这里插入图片描述

mkdir /opt/software
chmod 777 software

step 7:安装containerd

tar -zxvf cri-containerd-1.7.20-linux-amd64.tar.gz -C /

step 8:配置containerd

创建文件夹

mkdir /etc/containerd

创建配置文件

containerd config default > /etc/containerd/config.toml

修改config.toml的第67行,sandbox_image = "registry.k8s.io/pause:3.8"改成registry.aliyuncs.com/google_containers/pause:3.9,第139行SystemdCgroup = false改成SystemdCgroup = true。

vim /etc/containerd/config.toml
:set nu
registry.aliyuncs.com/google_containers/pause:3.9
SystemdCgroup = true

step 9:配置镜像加速

新版本的containerd镜像仓库配置都是建议放在一个单独的文件夹当中,并且在/etc/containerd/config.toml配置文件当中打开config_path配置,指向镜像仓库配置目录即可。这种方式只需要在第一次修改/etc/containerd/config.toml文件打开config_path配置时需要重启containerd,后续我们增加镜像仓库配置都无需重启containerd,非常方便。
在config.toml的第162行添加目录。

vim /etc/containerd/config.toml
config_path = "/etc/containerd/certs.d"

创建docker加速文件

mkdir -p /etc/containerd/certs.d/docker.io
cat > /etc/containerd/certs.d/docker.io/hosts.toml << EOF
server = "https://docker.io"
[host."https://dockerpull.com"]
  capabilities = ["pull", "resolve"]

[host."https://docker.m.daocloud.io"]
  capabilities = ["pull", "resolve"]

[host."https://hub.nat.tf"]
  capabilities = ["pull", "resolve"]
EOF

创建k8s加速文件

mkdir -p /etc/containerd/certs.d/registry.k8s.io
tee /etc/containerd/certs.d/registry.k8s.io/hosts.toml << 'EOF'
server = "https://registry.k8s.io"

[host."https://k8s.m.daocloud.io"]
  capabilities = ["pull", "resolve", "push"]
EOF

step 10:添加开机启动

systemctl enable --now containerd

step 11:查看containerd版本

containerd --veriosn

四、K8S集群部署

step 12:配置K8S集群软件apt源

先添加公钥

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

添加阿里云的镜像源

echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

更新apt索引

apt-get update

step 13:K8S集群软件的安装

查看kubeadm可用版本列表

apt-cache policy kubeadm

在这里插入图片描述
安装指定版本

apt-get install -y kubelet=1.31.0-1.1 kubeadm=1.31.0-1.1 kubectl=1.31.0-1.1

在这里插入图片描述
版本锁定

apt-mark hold kubelet kubeadm kubectl 

修改kubelet参数

vim /etc/default/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

设置kueblet开机自启动

systemctl enable kubelet

step 14:K8S集群初始化(mater节点)

创建目录,生成初始化配置文件,第12行改成advertiseAddress: 192.168.71.111, 第18行改成k8s-master01,在46行下加一行podSubnet: 10.244.0.0/16

mkdir /opt/software/init
kubeadm config print init-defaults > /opt/software/init/kubeadm-init.yaml
vim /opt/software/init/kubeadm-init.yaml

在这里插入图片描述
在这里插入图片描述
查看镜像列表

kubeadm config images list --config /opt/software/init/kubeadm-init.yaml

在这里插入图片描述
下载镜像

kubeadm config images pull --config /opt/software/init/kubeadm-init.yaml

在这里插入图片描述
查看已下载的镜像列表

crictl images

在这里插入图片描述
执行初始化

kubeadm init --config=/opt/software/init/kubeadm-init.yaml   --upload-certs --v=9

在这里插入图片描述
按照提示操作

 mkdir -p $HOME/.kube
 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
 sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看集群token值

kubeadm token create --print-join-command

在这里插入图片描述

step 15:worker加入集群(worker节点)

kubeadm join 192.168.71.111:6443 --token 84dglb.vl7ztqif8gds1o7i --discovery-token-ca-cert-hash sha256:45edd67fb778e71e803d19fbbe456b6edf37c7952fae106f18dcbae4c5f45083

在这里插入图片描述

查看节点状态,状态全是notready。

kubectl get nodes

在这里插入图片描述

五、部署网络插件Calico(常用的有flannel和calico)。

step 16:官网的地址https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart

在这里插入图片描述

直接复制官网的命令到master执行

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.2/manifests/tigera-operator.yaml

执行以后查看命名空间,多了一个tigera-operator

kubectl get ns

在这里插入图片描述
查看这个命名空间下创建的pod,状态为running

kubectl get pods -n tigera-operator

在这里插入图片描述
下载yaml文件

wget https://raw.githubusercontent.com/projectcalico/calico/v3.28.2/manifests/custom-resources.yaml

修改custom-resources.yaml的第13行cidr: 10.244.0.0/16

vim custom-resources.yaml

在这里插入图片描述
创建calico

kubectl create -f custom-resources.yaml

在这里插入图片描述
查看所有pod的创建情况,都已经running。

kubectl get pods -A

在这里插入图片描述

查看node状态,此时已经是ready状态

kubectl get nodes

在这里插入图片描述
EOF


原文地址:https://blog.csdn.net/weixin_45251630/article/details/142975013

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!