k8s 1.30.6版本部署(使用canal插件)

#系统环境准备

参考

https://blog.csdn.net/dingzy1/article/details/147062698?spm=1001.2014.3001.5501

#配置下载源

sh 复制代码
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key |
    gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" |
    tee /etc/apt/sources.list.d/kubernetes.list
	
	
apt-get update

 apt-cache madison kubeadm

#下载kubelet kubeadm kubectl 的1.30.6-1.1版本组件

sh 复制代码
apt-get -y install kubelet=1.30.6-1.1 kubeadm=1.30.6-1.1 kubectl=1.30.6-1.1

#查看版本信息

sh 复制代码
[root@master221 ~]#  kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"30", GitVersion:"v1.30.6", GitCommit:"00f20d443ba0cbc485d6ce36a7d3f9a9c4e8ed7a", GitTreeState:"clean", BuildDate:"2024-10-22T20:33:19Z", GoVersion:"go1.22.8", Compiler:"gc", Platform:"linux/amd64"}
[root@master221 ~]#  kubectl version
Client Version: v1.30.6
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[root@master221 ~]# kubelet --version
Kubernetes v1.30.6

#使用kubeadm初始化master节点

sh 复制代码
[root@master221 ~]# kubeadm init --kubernetes-version=v1.30.6 --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.100.0.0/16 --service-cidr=10.200.0.0/16  --service-dns-domain=dezyan.com

#拷贝授权文件,用于管理K8S集群

sh 复制代码
[root@master221 ~]# mkdir -p $HOME/.kube
[root@master221 ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master221 ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

#基于kubeadm部署worker组件

#将worker节点加入到master集群

sh 复制代码
[root@worker222 ~]# kubeadm join 10.0.0.221:6443 --token kj6ydv.bu3dg4ghs1uy0y13 \
        --discovery-token-ca-cert-hash sha256:d517cb572423511e891ab152da85fc2cd4b20727942926048b2f0b9127829232

[root@worker223 ~]# kubeadm join 10.0.0.221:6443 --token kj6ydv.bu3dg4ghs1uy0y13 \
        --discovery-token-ca-cert-hash sha256:d517cb572423511e891ab152da85fc2cd4b20727942926048b2f0b9127829232

#验证worker节点是否加入成功

sh 复制代码
[root@master221 ~]# kubectl get nodes
NAME        STATUS     ROLES           AGE    VERSION
master221   NotReady   control-plane   4m1s   v1.30.6
worker222   NotReady   <none>          8s     v1.30.6
worker223   NotReady   <none>          4s     v1.30.6

#部署CNI插件之Canal实战

参考链接

https://docs.tigera.io/calico/3.28/getting-started/kubernetes/flannel/install-for-flannel

sh 复制代码
[root@master221 ~]# curl https://raw.githubusercontent.com/projectcalico/calico/v3.28.3/manifests/canal.yaml -O


[root@master221 ~]# vim canal.yaml
改IP那行

[root@master221 ~]# kubectl apply -f canal.yaml

[root@master221 ~]# kubectl get pods -A
#等待镜像拉取,必须全部为Running状态

[root@master221 ~]# kubectl get nodes
NAME        STATUS   ROLES           AGE   VERSION
master221   Ready    control-plane   24m   v1.30.6
worker222   Ready    <none>          20m   v1.30.6
worker223   Ready    <none>          20m   v1.30.6

#创建测试文件

sh 复制代码
[root@master221 ~]# vim test-cni.yaml
apiVersion: v1                                                         
kind: Pod
metadata:
  name: xiuxian-v1
spec:
  nodeName: worker222
  containers:
  - image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
    name: xiuxian

---

apiVersion: v1
kind: Pod
metadata:
  name: xiuxian-v2
spec:
  nodeName: worker223
  containers:
  - image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v2
    name: xiuxian

#测试验证

sh 复制代码
[root@master221 ~]# kubectl get pods -o wide
NAME         READY   STATUS    RESTARTS   AGE   IP           NODE        NOMINATED NODE   READINESS GATES
xiuxian-v1   1/1     Running   0          50s   10.100.1.2   worker222   <none>           <none>
xiuxian-v2   1/1     Running   0          50s   10.100.2.2   worker223   <none>           <none>


#curl一下
[root@master221 ~]# curl 10.100.1.2
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <title>yinzhengjie apps v1</title>
    <style>
       div img {
          width: 900px;
          height: 600px;
          margin: 0;
       }
    </style>
  </head>

  <body>
    <h1 style="color: green">凡人修仙传 v1 </h1>
    <div>
      <img src="1.jpg">
    <div>
  </body>

</html>
[root@master221 ~]# curl 10.100.2.2
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <title>yinzhengjie apps v2</title>
    <style>
       div img {
          width: 900px;
          height: 600px;
          margin: 0;
       }
    </style>
  </head>

  <body>
    <h1 style="color: red">凡人修仙传 v2 </h1>
    <div>
      <img src="2.jpg">
    <div>
  </body>

</html>
相关推荐
江湖有缘31 分钟前
【Docker管理工具】部署Docker管理面板DweebUI
运维·docker·容器
慌ZHANG3 小时前
云原生微服务架构演进之路:理念、挑战与实践
微服务·云原生·架构
炎码工坊3 小时前
云原生安全基石:Kubernetes 核心概念与安全实践指南
云原生·kubernetes
黄雪超3 小时前
JVM——云原生时代JVM的演进之路
java·jvm·云原生
小钱c74 小时前
MacOS安装Docker Desktop并汉化
macos·docker·容器
笨小蛙4 小时前
服务器Docker容器创建与VScode远程连接SSH使用
服务器·vscode·docker·容器·ssh
蓝色的猴子5 小时前
Linux.docker.k8s基础概念
linux·docker·kubernetes
斯普信云原生组5 小时前
K8S集群主机网络端口不通问题排查
网络·容器·kubernetes
matrixlzp5 小时前
K8S StatefulSet 快速开始
云原生·容器·kubernetes
AKAMAI6 小时前
使用Akamai分布式云与CDN保障视频供稿传输安全
后端·云原生·云计算