文章目录
- :trophy: 搭建Kubernetes 1.28.x 版本
- :cookie: 初始化(主从)
- :cookie: 安装Containerd(主从)
- :cookie: 安装kubeadm(主节点)
- :cookie: 安装Flannel
重温一下k8s的学习以便后面找工作,复习一下如何学习一下新特性,万事开头难,没想到这么难,搭建新版(虽然不是很新了)问题不断,层出不穷,但是好在我时打怪小能手
🏆 搭建Kubernetes 1.28.x 版本
🍪 初始化(主从)
准备2台一主一丛,系统选型使用的阿里的龙蜥8
,和之前的centos8
兼容一点
节点 | IP | k8s版本 |
---|---|---|
k8s-master | 192.168.200.10 | 1.28.x |
k8s-node01 | 192.168.200.20 | 1.28.x |
1️⃣ 老套路,关闭防火墙
、Selinux
、时钟同步
、hosts
、免密
可以查看我的博客老版本前几个步骤https://blog.tanc.fun:9999/archives/1714148055858
🍪 安装Containerd(主从)
使用Containerd
而不使用docker
这里面是有点学问在的,我觉得目前docker
太臃肿了,而containerd
自称工业级的容器运行时,使用过一段时间发现还是不错的,资源占用还少
1️⃣ 建议直接按照官方文档直接安装,很简单
github安装地址:https://github.com/containerd/containerd/blob/main/docs/getting-started.md
需要安装cni
、containerd
、runc
等
2️⃣ 配置containerd
k8s官方 配置 https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#containerd
🍪 安装kubeadm(主节点)
k8s 的官方安装文档: https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/
1️⃣ 配置阿里源,下载kubelet
、kubeadm
、kubectl
🏢地址: https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.a8a01b11ccH26p
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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet && systemctl start kubelet
2️⃣ 安装完成启动之后,使用 kubeadm config print init-defaults > kubeadm-config.yaml
生成配置文件,修改配置文件
[root@k8s-master ~]# cat kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.168.200.10 ##修改为本机ipbindPort: 6443
nodeRegistration:criSocket: unix:///var/run/containerd/containerd.sockimagePullPolicy: IfNotPresentname: k8s-master ## 修改为本机主机名taints: null
---
apiServer:timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes ##这个可以自己配置
controllerManager:extraArgs:horizontal-pod-autoscaler-sync-period: "10s"node-monitor-grace-period: "10s"
dns: {}
etcd:local:dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers ##修改镜像源
kind: ClusterConfiguration
kubernetesVersion: 1.28.0 ## 注意版本
networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12podSubnet: 10.244.0.0/16 ## 为了之后的CNI插件配置
scheduler: {}
##Cgroup 默认就是systemd了不需要配置了
3️⃣ 初始化节点
kubeadm init --config kubeadm-config.yaml
4️⃣ 使用kubectl get node
查看节点,如果是not ready
,是cni
网络插件没有安装,但是先别安装,先将node
节点都加入到集群中
kubeadm join --token abcdef.0123456789abcdef 192.168.200.10:6443 --discovery-token-ca-cert-hash sha256:62a464c9f62b47e897a983ca86246dbc0c1fba82d736d38f663ddc15a4c4931b
🍪 安装Flannel
1️⃣ 这里就需要代理了,拉取镜像,设置代理方法
如果没有代理,则百度国内镜像代理,将
kube-flannel.yml
下载到本地,修改配置文件镜像即可ps:如果对docker解除了墙层面了,就不需要使用代理了
export http_proxy=http://xxxx:xxxx
export https_proxy=https://xxxx:xxxx##另外需要将k8s的几个端口设置不需要代理
export no_proxy="192.168.200.10:6443,192.168.200.10:2379,192.168.200.10:2380,127.0.0.1,*:10256,*:10250 "
1️⃣ 设置完成后可以
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
2️⃣ 安装完成查看
[root@k8s-master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master Ready control-plane 5h43m v1.28.2
k8s-node01 Ready <none> 5h42m v1.28.2