查看原文
其他

k8s 1.24.3 kubeadm安装部署

大侠之运维 大侠之运维 2023-07-22
点击上方蓝字  关注大侠之运维

在今年的5月3日,正式发布了1.24版本,目前已经迭代到了1.24.3版本,今天的话,就是完整的介绍下1.24.3版本的一个kuebadm安装方式

 

这个版本最大的一个变动就是Kubernetes 正式移除对 Dockershim 的支持,讨论很久的 “弃用 Dockershim” 也终于在这个版本画上了句号。

 


1.24.3版本集群部署-kubeadm方式


主机资源介绍

ip

CPU

内存

磁盘

主机名

系统

192.168.78.10

4C

8G

50G

 k8s-master1

centos7.8

192.168.78.11

4C

8G

50G

 k8s-worker1

centos7.8

192.168.78.12

4C

8G

50G

 k8s-worker2

centos7.8


三台主机的话,都是虚拟机,vmvare直接克隆的,虚拟机生成这里就不介绍了


 

主机名修改

三台主机分别执行如下修改主机名,并修改/etc/hosts文件

#192.168.78.10hostnamectl set-hostname k8s-master1#192.168.78.11hostnamectl set-hostname k8s-worker1#192.168.78.12hostnamectl set-hostname k8s-worker2

修改主机解析文件

三台均需修改

#vim /etc/hosts192.168.78.10 k8s-master1192.168.78.11 k8s-worker1192.168.78.12 k8s-worker2

关闭防火墙

三台均需修改

# systemctl disable firewalld# systemctl stop firewalld

关闭selinux

三台均需修改

# sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config


时间同步

#yum install ntpdate#ntpdate time1.aliyun.com
#也可以直接加到定时任务中crontab -e0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com

升级内核

三台主机均需操作

操作前查看目前内核版本

#rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org# yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm# yum --enablerepo="elrepo-kernel" -y install kernel-ml.x86_64#设置grub2默认引导为0# grub2-set-default 0# grub2-mkconfig -o /boot/grub2/grub.cfg# reboot


升级后

配置内核转发及网桥过滤

三台均需操作

vim /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1vm.swappiness = 0 #加载br_netfilter模块# modprobe br_netfilter


#查看是否加载

# lsmod | grep br_netfilterbr_netfilter 22256 0bridge 151336 1 br_netfilter



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

# sysctl -p /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1vm.swappiness = 0

安装ipset及ipvsadm

三台均需操作

安装ipset及ipvsadm# yum -y install ipset ipvsadm

 

配置ipvsadm模块加载方式
添加需要加载的模块
# cat > /etc/sysconfig/modules/ipvs.modules <<EOF#!/bin/bashmodprobe -- ip_vsmodprobe -- ip_vs_rrmodprobe -- ip_vs_wrrmodprobe -- ip_vs_shmodprobe -- nf_conntrackEOF

 

授权、运行、检查是否加载
# chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack

 

关闭swap分区

#swapoff -a

docker及cri-dockerd安装


docker-ce安装

yum -y install docker-ce


docker服务启动

systemctl enable --now docker

修改cgroup启动方式

vim /etc/docker/daemon.json{ "exec-opts": ["native.cgroupdriver=systemd"]}

修改后重启docker

# systemctl restart docker

cri-dockerd安装 rpm方式

 

#wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.5/cri-dockerd-0.2.5-3.el7.src.rpm

#rpm -ivh cri-dockerd-0.2.5-3.el7.x86_64.rpm

#systemctl restart cri-dockerd#systemctl enable cri-dockerd

k8s集群部署


yum源准备


vim /etc/yum.repos.d/k8s.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=0repo_gpgcheck=0gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg


yum安装


# yum -y install kubeadm kubelet kubectl

修改kubelet cgroup启动方式与docker一致


# vim /etc/sysconfig/kubeletKUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

设置kubelet开机启动


#systemctl enable kubelet

kubeadm 初始化


使用阿里云镜像,指定镜像源

#kubeadm init --apiserver-advertise-address=192.168.78.10 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version=v1.24.3 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all --cri-socket unix:///var/run/cri-dockerd.sock
 

输出如下字样表示初始化完成

Your Kubernetes control-plane has initialized successfully!

可以继续往下


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

根据打印出的node join方式加入节点

kubeadm join 192.168.78.10:6443 --token cjvznn.pbaaarwmnx273ta0 --discovery-token-ca-cert-hash sha256:929942f5e9f58a32fc644f50147ff6095dd30e60b3245573ba0baeeb60caa4a5 --cri-socket unix:///var/run/cri-dockerd.sock

calico网络插件安装


执行到上面可以看到node节点是非health的,coredns也是异常的

获取calico yaml文件

wget https://docs.projectcalico.org/v3.23/manifests/calico.yaml --no-check-certificate

修改如下配置为初始化中的--pod-network-cidr地址,注意格式

- name: CALICO_IPV4POOL_CIDR value: "10.224.0.0/16"

然后apply

kubectl apply -f calico.yaml

到这里基本就部署完成了

可以看下目前的节点情况及pod启动情况

 

 

 



👆点击查看更多内容👆

推荐阅读
elk8.0部署文档(rsyslog+kafka+logstash+elasticsearch+kibana))
ELK告警插件-elastalert2 实践,支持elk8.0版本,企微机器人告警实现 
python脚本|云平台新增主机后,jumpserver自动导入主机信息

记得星标记一下,下次更容易找到我
       

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存