k8s 1.24.x kubeadm 安装部署

网友投稿 364 2022-09-10

k8s 1.24.x kubeadm 安装部署

标签(空格分隔): kubernetes系列

一:k8s 1.24.x 简介

1.1 k8s 1.24.x 发布

Kubernetes 1.24 的发布日期从 4 月 19 日 移至 5 月 3 日。现已正式发布。 此版本带来了 46 项增强,与Kubernetes 1.23 中的 45和Kubernetes 1.22 中的 56 相当。在这 46 项增强功能中,13 项正在升级到稳定版,14 项是不断改进的现有功能,13 项是全新的,6 项是已弃用的功能。 在这个版本中,最大的变动是 删除 Dockershim,这是确保 Kubernetes 项目未来的必要步骤。注意此版本中的所有弃用和删除应用

1.2 k8s 1.24.x 的一些改动

kubernetes 正式移除了对docker-shim的支持,以后也将弃用

改成了

二:k8s 1.24.x 使用kubeadm 部署

2.1 系统环境

cat /etc/hosts ---- 172.16.10.11 flyfishsrvs01 172.16.10.12 flyfishsrvs02 172.16.10.13 flyfishsrvs03 172.16.10.14 flyfishsrvs04 172.16.10.15 flyfishsrvs05 172.16.10.16 flyfishsrvs06 172.16.10.17 flyfishsrvs07 ----- 先安装单master版本后续扩容成多master 系统关闭firewalld/selinux /清空iptables防火墙规则 本次安装前三台

2.2 升级系统内核 [所有主机都要配置]

所有机器都要升级内核 #查看当前内核版本 uname -r uname -a cat /etc/redhat-release #添加yum源仓库 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo rpm --import https://elrepo.org/RPM-GPG-KEY-elrepo.org yum install -y https://elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm #更新yum源仓库 yum -y update #查看可用的系统内核包 yum --disablerepo="*" --enablerepo="elrepo-kernel" list available #安装内核,注意先要查看可用内核,我安装的是5.18版本的内核 yum --enablerepo=elrepo-kernel install kernel-ml -y #查看目前可用内核 awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg #使用序号为0的内核,序号0是前面查出来的可用内核编号 grub2-set-default 0 #生成 grub 配置文件并重启 grub2-mkconfig -o /boot/grub2/grub.cfg reboot

2.3 环境配置

#修改时区,同步时间 yum install chrond -y vim /etc/chrony.conf ----- ntpdate ntp1.aliyun.com iburst ----- ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo 'Asia/Shanghai' > /etc/timezone #关闭防火墙,selinux systemctl stop firewalld systemctl disable firewalld sed -i 's/enforcing/disabled/' /etc/selinux/config setenforce 0 ## 关闭swap swapoff -a sed -ri 's/.*swap.*/#&/' /etc/fstab #系统优化 cat > /etc/sysctl.d/k8s_better.conf << EOF net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 net.ipv4.ip_forward=1 vm.swappiness=0 vm.overcommit_memory=1 vm.panic_on_oom=0 fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=1048576 fs.file-max=52706963 fs.nr_open=52706963 net.ipv6.conf.all.disable_ipv6=1 net.netfilter.nf_conntrack_max=2310720 EOF modprobe br_netfilter lsmod |grep conntrack modprobe ip_conntrack sysctl -p /etc/sysctl.d/k8s_better.conf #确保每台机器的uuid不一致,如果是克隆机器,修改网卡配置文件删除uuid那一行 cat /sys/class/dmi/id/product_uuid

2.4 安装ipvs

###系统依赖包 yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git ### 开启ipvs 转发 modprobe br_netfilter 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

2.5 安装containerd

创建 /etc/modules-load.d/containerd.conf 配置文件: cat << EOF > /etc/modules-load.d/containerd.conf overlay br_netfilter EOF modprobe overlay modprobe br_netfilter

获取阿里云YUM源 wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 查看YUM源中Containerd软件 # yum list | grep containerd containerd.io.x86_64 1.4.12-3.1.el7 docker-ce-stable 下载安装: yum install -y containerd.io

生成containerd的配置文件 mkdir /etc/containerd -p 生成配置文件 containerd config default > /etc/containerd/config.toml 编辑配置文件 vim /etc/containerd/config.toml ----- SystemdCgroup = false 改为 SystemdCgroup = true # sandbox_image = "k8s.gcr.io/pause:3.6" 改为: sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.6" ------ # systemctl enable containerd Created symlink from /etc/systemd/system/multi-user.target.wants/containerd.service to /usr/lib/systemd/system/containerd.service. # systemctl start containerd

ctr version runc -version

三:部署k8s1.24.x 部署

3.1 配置所需要YUM 源

1.添加阿里云YUM软件源 cat < /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 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF yum clean all yum makecache fast

3.2 安装kubeadm,kubelet和kubectl

目前最新版本是1.24.1,我们直接上最新版 yum install -y kubectl kubelet kubeadm systemctl enable kubelet

为了实现docker使用的cgroupdriver与kubelet使用的cgroup的一致性,建议修改如下文件内容。 # vim /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--cgroup-driver=systemd" 设置kubelet为开机自启动即可,由于没有生成配置文件,集群初始化后自动启动 # systemctl enable kubelet

3.3 准备集群所需要的镜像

kubeadm config images list --kubernetes-version=v1.24.1

3.3 集群初始化

使用kubeadm init命令初始化 在flyfishsrvs01上执行,报错请看k8s报错汇总 kubeadm init --kubernetes-version=v1.24.1 --pod-network-cidr=10.224.0.0/16 --apiserver-advertise-address=172.16.10.11 --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address 集群通告地址 --image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址 --kubernetes-version K8s版本,与上面安装的一致 --service-cidr 集群内部虚拟网络,Pod统一访问入口 --pod-network-cidr Pod网络,,与下面部署的CNI网络组件yaml中保持一致

----- To start using your cluster, you need to run the following as a regular user: mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config Alternatively, if you are the root user, you can run: export KUBECONFIG=/etc/kubernetes/admin.conf You should now deploy a pod network to the cluster. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/ Then you can join any number of worker nodes by running the following on each as root: kubeadm join 172.16.10.11:6443 --token albnsj.7axslw1i5bv1byno \ --discovery-token-ca-cert-hash sha256:647a98e0c91fdb307bb15638b4590344b3fff446f4e49318d437dbf1368f3e06 ---- kubectl get node

3.4 部署calico网络

网络组件有很多种,只需要部署其中一个即可,推荐Calico。 Calico是一个纯三层的数据中心网络方案,Calico支持广泛的平台,包括Kubernetes、OpenStack等。 Calico 在每一个计算节点利用 Linux Kernel 实现了一个高效的虚拟路由器( vRouter) 来负责数据转发,而每个 vRouter 通过 BGP 协议负责把自己上运行的 workload 的路由信息向整个 Calico 网络内传播。 此外,Calico 项目还实现了 Kubernetes 网络策略,提供ACL功能。 1.下载Calico wget --no-check-certificate vim +4434 calico.yaml ... - name: CALICO_IPV4POOL_CIDR value: "10.244.0.0/16" ...

kubectl apply -f calico.yaml

去掉主节点上面不可调度pod污点 kubectl describe node flyfishsrvs01 kubectl taint nodes --all node-role.kubernetes.io/control-plane:NoSchedule-

kubectl get pod -n kube-system

kubectl get node

3.5 将其它worker节点 加入

flyfishsrvs02 与 flyfishsrvs03 加入: kubeadm join 172.16.10.11:6443 --token albnsj.7axslw1i5bv1byno \ --discovery-token-ca-cert-hash sha256:647a98e0c91fdb307bb15638b4590344b3fff446f4e49318d437dbf1368f3e06

3.6 部署dashboard 服务

wget https://raw.githubusercontent.com/cby-chen/Kubernetes/main/yaml/dashboard.yaml 目前最新版本v2.6.0 vim dashboard.yaml ---- spec: ports: - port: 443 targetPort: 8443 nodePort: 30001 type: NodePort selector: k8s-app: kubernetes-dashboard ---- kubectl apply -f dashborad.yaml

kubectl get pods -n kubernetes-dashboard kubectl get pods,svc -n kubernetes-dashboard

创建用户: wget https://raw.githubusercontent.com/cby-chen/Kubernetes/main/yaml/dashboard-user.yaml kubectl apply -f dashboard-user.yaml

创建token kubectl -n kubernetes-dashboard create token admin-user

3.7 登录浏览器访问

https://172.16.10.11:30001 输入token: ---- eyJhbGciOiJSUzI1NiIsImtpZCI6ImZIOVJfRVBVd0JMMjlMOFFYbW1TcTJZbW83WXVDVk1UcFhDVXdxcXFaakkifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjU0NzAxMDkyLCJpYXQiOjE2NTQ2OTc0OTIsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiYmUzMzI3ODctODM1OC00MGIyLWIxZWYtZjU2MTRlYjQ0MDM5In19LCJuYmYiOjE2NTQ2OTc0OTIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.LzQ87ERwA1d2Ec6T9P7AFVoxkQ4la0HTvIMOX6LEaRTfngj9cLVeiCBL2MleQ_IWMyCjK9UAohOIFOfMtEbBBb9jO63gsJkbKWBe2HKsQ59c0jXRI-xhRzBVFaD8ma4o-d-33SCxovFmiEDeXg5LIyvrM69w4fZ5qHFCz9i7RWjAynn9xjGg00inMH6aS507gHioxk9ymihFr631XjJ7QD2sQf2EX7luobL9V7IxZj9QeZyU68UR0PQ48jcSj6fGV79l201CwnHv4uvmtuSoFjOA2l1-F86Hk3VAZXCuT0g0rbpYfvwzrHL8baJnfYKM6zp1CRxx9zisbxIfNFrLww ----

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:k8s学习-工作负载2
下一篇:#云原生征文#Kubernetes工作负载
相关文章

 发表评论

暂时没有评论,来抢沙发吧~