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>
相关推荐
oceanweave3 小时前
【kind管理脚本-2】脚本使用说明文档 —— 便捷使用 kind 创建、删除、管理集群脚本
云原生·kind
oceanweave3 小时前
【kind管理脚本-1】便捷使用 kind 创建、删除、管理集群脚本
docker·kubernetes·kind
两点王爷7 小时前
docker 运行自定义化的服务-后端
运维·docker·容器
弧襪8 小时前
K8S-证书过期更新
云原生·容器·kubernetes
东风微鸣11 小时前
Grafana将弃用AngularJS-我们该如何迁移
docker·云原生·kubernetes·可观察性
开心码农1号12 小时前
当一个 HTTP 请求发往 Kubernetes(K8s)部署的微服务时,整个过程流转时怎样的?
http·微服务·kubernetes
细心的莽夫13 小时前
Docker学习笔记
运维·笔记·后端·学习·docker·容器
诗句藏于尽头15 小时前
BT面板docker搭建excalidraw遇到的问题
运维·docker·容器
弧襪15 小时前
解决 Docker Swarm 集群节点故障:从问题剖析到修复实战
docker·容器
云攀登者-望正茂15 小时前
通过AWS EKS 生成并部署容器化应用
云原生·kubernetes·aws