使用kubeadm 部署 k8s 1.26.x [containerd]-八零岁月
记录所见
分享所感

使用kubeadm 部署 k8s 1.26.x [containerd]

1.1. 系统环境介绍

系统:

Alibaba Cloud Linux (Aliyun Linux) release 2.1903 LTS (Hunting Beagle)

主机名:

​ cat /etc/hosts


​ 192.168.4.203 master ​ 192.168.4.205 node01 ​ 192.168.4.207 node02


系统关闭firwalld,selinux ,清空防火墙iptables

1.2. 系统初始化 [所有节点]

#修改时区,同步时间
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

#系统优化

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

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

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

1.4. 安装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 install -y containerd.io

1.5. 配置containerd

生成containerd的配置文件
mkdir /etc/containerd -p
生成配置文件
containerd config default > /etc/containerd/config.toml
编辑配置文件
vim /etc/containerd/config.toml

# 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

二:安装k8s 1.26.x

2.1. 配置k8s1.25的yum 源

1.添加阿里云YUM软件源

cat <<EOF > /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/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum makecache

2.2. 安装kubeadm,kubelet和kubectl

目前最新版本是1.26.0,我们直接上最新版

yum install -y kubectl kubelet kubeadm
systemctl enable kubelet
设置kubelet为开机自启动即可,由于没有生成配置文件,集群初始化后自动启动
# systemctl enable kubelet
准备k8s  1.26.0 所需要的镜像
kubeadm config images list --kubernetes-version=v1.26.0

2.3. 集群初始化

使用kubeadm init命令初始化

在rockysrvs01上执行,报错请看k8s报错汇总

kubeadm init --kubernetes-version=v1.26.0 --pod-network-cidr=10.224.0.0/16 --apiserver-advertise-address=192.168.4.203 --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中保持一致
  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 192.168.4.203:6443 --token xxxxxxxxxxx \
      --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxx

2.4 其它节点加入集群

kubeadm join 192.168.4.203:6443 --token xxxxxx \
      --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxx

2.5 集群部署网络插件

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

vim calico.yaml
...
- name: CALICO_IPV4POOL_CIDR
value: "10.244.0.0/16"
...
kubectl apply -f calico.yaml
查看节点:

kubectl get pod -n kube-system
kubectl get node

2.6. 部署dashborad

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

2.7 登录浏览器访问

https://192.168.4.203:30001
输入token:
----
eyJhbGciOiJSUzI1NiIsImtpZCI6ImxranB6VTBEajJFU1Z2blpQWkZRRkhhOFNtZVBQbjBQYld4T1dMNUx0WjQifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjc1MzI5MDgwLCJpYXQiOjE2NzUzMjU0ODAsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJhZG1pbi11c2VyIiwidWlkIjoiNzAzZTc4NjEtMzBlZC00ZjdjLTliOTYtZjczYjJkM2FiZGE5In19LCJuYmYiOjE2NzUzMjU0ODAsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlcm5ldGVzLWRhc2hib2FyZDphZG1pbi11c2VyIn0.Q9qzCy6xRjVX_MFWDXvvj6CaRzm-ZLMyrBItn2WFNikVte1mK7Ef7T5-fAIA3-xmiq_PUppk0i9ys0VanN3csuAwFeZ7UHpgF-NJ9u1AXyjCtjODkYozLfaOEDyCCB5Jb42AHPCxOYkLpOFgzisItDEcxrHflhqSStk9pOiy0QF41ZMQ8nxg-swvjePL0oGps2w-oiCmbzu2K0gLgsCx80A8KDjTJxSC9BNs6o8VKeGJbvq-TsLtIFo3iRV-niSO4IWpvXBT_HY8_JeOXxvqMeuIQ8h8v3R7VNGU3W623ThRR-8QviU8QeutbX1B0qFjGAFkjs5hJBGRPFjkbKbfpw
----

文章转载请说明出处:八零岁月 » 使用kubeadm 部署 k8s 1.26.x [containerd]

分享到:更多 ()

吐槽集中营 抢沙发

评论前必须登录!