kubeadm快速部署Kubernetes1.29.6版本集群

  • 操作系统:Centos7
  • 一主两从:角色:k8s-master01   k8s-worker01   k8s-worker02 主机名设置:
  • 主机名配置:
master节点
hostnamectl set-hostname k8s-master01

worker01节点
hostnamectl set-hostname k8s-worker01

worker02节点
hostnamectl set-hostname k8s-worker02
  • 主机ip地址配置:
k8s-master01节点IP地址为:192.168.20.130/24

k8s-worker01节点IP地址为:192.168.20.131/24

k8s-worker02节点IP地址为:192.168.20.132/24
  •  主机名与ip地址解析
# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.20.130 k8s-master01
192.168.20.131 k8s-worker01
192.168.20.132 k8s-worker02
  • 防火墙配置(所有主机均需要操作 )
关闭现有防火墙firewalld
systemctl disable firewalld
systemctl stop firewalld

查看firewalld状态
firewall-cmd --state
not running(运行结果)
  • SELINUX配置(所有主机均需要操作。修改SELinux配置需要重启操作系统。 )
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

sestatus(查看状态)
  • 集群节点之间的时间同步(所有主机均需要操作 )
crontab -l
0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com
  • 升级操作系统内核(如果内核版本比较老的话,建议升级,所有主机均需要操作 )
导入elrepo gpg key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装elrepo YUM源仓库
yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm

安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本
yum --enablerepo="elrepo-kernel" -y install kernel-lt.x86_64

设置grub2默认引导为0
grub2-set-default 0

重新生成grub2引导文件
grub2-mkconfig -o /boot/grub2/grub.cfg

更新后,需要重启,使用升级的内核生效。
reboot

重启后,需要验证内核是否为更新对应的版本
uname -r
  • 配置内核路由转发及网桥过滤(所有主机均需要操作 )
添加网桥过滤及内核转发配置文件
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

加载br_netfilter模块
modprobe br_netfilter

查看是否加载
lsmod | grep br_netfilter
(以下为显示结果)
br_netfilter           22256  0
bridge                151336  1 br_netfilter

使其生效
sysctl --system
  • 安装ipset及ipvsadm(所有主机均需要操作)
安装ipset及ipvsadm
yum -y install ipset ipvsadm

配置ipvsadm模块加载方式
添加需要加载的模块
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF

授权、运行、检查是否加载
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack
  • 关闭SWAP分区(修改完成后需要重启操作系统,如不重启可临时关闭,命令为swapoff -a )
永远关闭swap分区,需要重启操作系统
# cat /etc/fstab
......

# /dev/mapper/centos-swap swap                    swap    defaults        0 0

在上一行中行首添加#
  • Docker-ce及cri-dockerd准备

    Docker安装yum源:

   

添加源:
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

Docker安装:
yum -y install docker-ce

启动Docker服务:
systemctl enable --now docker

修改cgroup方式:(/etc/docker/daemon.json 默认没有此文件,需要单独创建)
在/etc/docker/daemon.json添加如下内容

cat > /etc/docker/daemon.json <<EOF
{
        "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

重启docker:
systemctl restart docker

cri-dockerd安装

获取安装包:
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.14/cri-dockerd-0.3.14-3.el7.x86_64.rpm

安装:
yum -y install cri-dockerd-0.3.14-3.el7.x86_64.rpm

修改第10行内容:
vim /usr/lib/systemd/system/cri-docker.service
ExecStart=/usr/bin/cri-dockerd --pod-infra-container-image=registry.k8s.io/pause:3.9 --container-runtime-endpoint fd://

启动并设置docker自启动:
systemctl start cri-docker
systemctl enable cri-docker
  • 集群部署:
使用kubernetes社区YUM源:
cat > /etc/yum.repos.d/k8s.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
#exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF

集群软件安装:(所有节点均可安装)
yum -y install  kubeadm  kubelet kubectl

配置kubelet:
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"


设置kubelet为开机自启动:

systemctl enable kubelet
  • 集群初始化:
kubeadm init  --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.20.130  --cri-socket unix:///var/run/cri-dockerd.sock

初始化完成截图:

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

使用kubeadm join 命令加入集群主节点(注意:不能直接复制命令添加,后面要指定容器运行时:--cri-socket unix:///var/run/cri-dockerd.sock)

kubeadm join 192.168.20.130:6443 --token ahtubs.r5sw0j43gv3k0tng    --discovery-token-ca-cert-hash sha256:510c4d019c87fc89e67cab32d7cd0e0c8665aff6fd2a15be0fa4773188b7b234 --cri-socket unix:///var/run/cri-dockerd.sock

此时加入会显示NotReady,因为没部署网络插件

下面部署网络插件calico:

第一个可以直接执行
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yaml

第二个要先下载下来需要修改
wget https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/custom-resources.yaml

vim custom-resources.yaml
把cidr: 192.168.0.0/16   修改为:10.244.0.0/16

执行:
kubectl apply -f custom-resources.yaml

查看pod状态:
kubectl get pods -n calico-system

可以看到网络插件安装后,集群节点都显示了Ready,至此集群安装完成!

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值