k8s集群部署,部署集群,版本1.24

 

目录
收起
1.24版本发布及变动
1.24.3版本集群部署-kubeadm方式
主机资源介绍
主机名修改
修改主机解析文件
关闭防火墙
关闭selinux
时间同步
升级内核
配置内核转发及网桥过滤
安装ipset及ipvsadm
关闭swap分区
docker及cri-dockerd安装
k8s集群部署
calico网络插件安装
dashboard安装

1.24版本发布及变动

在今年的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.10
hostnamectl set-hostname k8s-master1
#192.168.78.11
hostnamectl set-hostname k8s-worker1
#192.168.78.12
hostnamectl set-hostname k8s-worker2

修改主机解析文件

三台均需修改
#vim /etc/hosts
192.168.78.10 k8s-master1
192.168.78.11 k8s-worker1
192.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 -e
0 */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.conf

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
#加载br_netfilter模块
# modprobe br_netfilter


#查看是否加载
# lsmod | grep br_netfilter
br_netfilter           22256  0
bridge                151336  1 br_netfilter


加载网桥过滤及内核转发配置文件
# 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
vm.swappiness = 0

安装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

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.3.1/cri-dockerd-0.3.1-3.el7.x86_64.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=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=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/kubelet
KUBELET_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/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo 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启动情况

 

dashboard安装

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.0/aio/deploy/recommended.yaml

修改service的type为nodeport

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort #新加
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001  #新加
  selector:
    k8s-app: kubernetes-dashboard

查看状态

kubectl get pods -n kubernetes-dashboard
NAME                                        READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-8c47d4b5d-fzcf6   1/1     Running   0          2m34s
kubernetes-dashboard-5676d8b865-fp26b       1/1     Running   0          2m34s

新建admin

#创建dashboard管理用户
kubectl create serviceaccount dashboard-admin -n kube-system


#绑定集群角色
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

获取token,指定过期时间

kubectl -n kube-system create token dashboard-admin --duration 3153600000s


结果:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjJmeGxodjJ3N3lqMnNHNXpLbUVPVFNEcHl3U2UxZkQxaEg1dW90Q0lxdUkifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjo0ODEzNzgwMTM3LCJpYXQiOjE2NjAxODAxMzcsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJkYXNoYm9hcmQtYWRtaW4iLCJ1aWQiOiI1ZWRjNTRlMS1iNmFjLTQ4NGQtYjI1OS03NDE1ZTQyMjI0ZWUifX0sIm5iZiI6MTY2MDE4MDEzNywic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.vh4RX9RAeqGsgn_eeFYZbTPU08CqiviTYTwzRIf0ygQ0FnreWGwX1oHiRN1eYxyPMwS5staCF6HNPeh8zZKxuSlGN5KfReuyjmN7XJdgLzSo1_iEvnHJ5kd8OFfiK7ArqMDwfU0_EmyWpnxJUMGkPHsJ1qzr_RgBtXqCJo9-00ueQyBD9NlIX-aaSndmz4ukumH9ESGDu96GzltFbMEsVWiC2XrHoxnGQuyuV30Y0CxUPghSEOwvBWHRulGJD9jiUbvW2-g7CYPekdfpZMB7zUoe9eKu-nfcxExLNeWoGM4DbcITTWTtkQGnpz_yQ8mP1DXtxSI7LLki6QquF36aEA

界面

192.168.78.10:30001/

 

posted @   duoruimi  阅读(480)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示