kubeadm部署k8s v1.30

k8s 1.30主要新功能

  • kubelet 重啟后穩健的 VolumeManager 重建(SIG Storage)

  • 防止在卷還原過程中未經授權的卷模式轉換(SIG Storage)

  • Pod 調度可用性(SIG Scheduling)

  • PodTopologySpread 中的最小域數(SIG Scheduling)

  • k/k 中的 Go 工作區(SIG Architecture))

  • 節點日志查詢(Windows SIG Scheduling)

  • CRD 驗證棘輪(SIG API Machinery)

  • 上下文日志記錄(SIG Instrumentation)

  • 使 Kubernetes 了解負載均衡行為(SIG Network)

Kubernetes v1.30 的升級、棄用和移除

升級至穩定版 以下是升級至穩定版(也稱為正式發布版)的所有功能列表。有關包括新功能和從 alpha 到 beta 的升級的完整更新列表,請查閱發布說明。

此版本包含了共 17 個功能的升級至穩定版:

  • 基于容器資源的 Pod 自動伸縮:https://kep.k8s.io/1610
  • 刪除云控制器管理器(KCCM)中的臨時節點謂詞:https://kep.k8s.io/3458
  • k/k 采用 Go 的 workspace 架構:https://kep.k8s.io/4402
  • 減少基于 Secret 的 ServiceAccount 令牌:https://kep.k8s.io/2799
  • 用于準入控制的 CEL:https://kep.k8s.io/3488
  • 基于 CEL 的準入控制的匹配條件:https://kep.k8s.io/3716
  • Pod 調度準備就緒:https://kep.k8s.io/3521
  • PodTopologySpread 中的最小域:https://kep.k8s.io/3022
  • 阻止在卷恢復期間發生未授權的卷模式轉換:https://kep.k8s.io/3141
  • API Server 鏈路追蹤:https://kep.k8s.io/647
  • 云上雙棧 - – node - ip 的處理:https://kep.k8s.io/3705
  • AppArmor 支持:https://kep.k8s.io/24
  • kubelet 重啟后穩定重建 VolumeManager:https://kep.k8s.io/3756
  • kubectl 交互式刪除:https://kep.k8s.io/3895
  • 指標基準配置:https://kep.k8s.io/2305
  • 為 Pod 添加 status.hostIPs 字段:https://kep.k8s.io/2681
  • 聚合資源 API 發現:https://kep.k8s.io/3352

棄用和移除:

  • 自 v1.27 版本起,已移除對 SecurityContextDeny 準入插件的支持,并標記為棄用。(SIG Auth、SIG Security 和 SIG Testing)
  • 隨著 SecurityContextDeny 準入插件的移除,建議使用自 v1.25 版本起可用的 Pod Security Admission 插件。

一、環境準備

1.1、服務器信息

IP地址角色CPU/內存主機名操作系統
192.168.110.8master4c/4GmasterCentOS 7.6
192.168.110.9node14c/4Gnode1CentOS 7.6

1.2、ip和主機名解析

$ cat /etc/hosts192.168.110.8 master
192.168.110.9 node1

1.3、關閉防火墻和selinux

$ systemctl stop firewalld && systemctl disable firewalld$ setenforce 0$ sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

1.4、禁用swap分區

$ swapoff -a && sed -i 's/.*swap.*/#&/' /etc/fstab 

1.5、修改內核參數并加載

#開啟ipv4轉發

$ cat >> /etc/sysctl.d/k8s.conf << EOF
vm.swappiness=0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF$ modprobe br_netfilter &&  modprobe overlay && sysctl -p /etc/sysctl.d/k8s.conf	

注:其中1.2 - 1.5在所有節點進行操作

二、安裝docker

k8s在 v1.24及以上版本由于棄用dockershim后,無法直接使用docker,需要安裝cri-docker,推薦直接使用containerd,這里由于個人習慣問題,部署docker+cri-docker配合使用

2.1、安裝docker

$ yum install -y yum-utils device-mapper-persistent-data lvm2$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ yum install -y docker-ce$ systemctl start docker && systemctl enable docker

2.2、配置daemon.json

#主要設置驅動為systemd,systemd在資源緊張的情況下比cgroups更加穩定

$ cat /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["http://hub-mirror.c.163.com/","https://docker.mirrors.ustc.edu.cn/","https://fz5yth0r.mirror.aliyuncs.com","https://registry.docker-cn.com"],"data-root":"/var/lib/docker","storage-driver": "overlay2","log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "3"}
}

2.3、安裝cri-docker

$ curl -LO https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.13/cri-dockerd-0.3.13-3.el7.x86_64.rpm$ rpm -ivh cri-dockerd-0.3.13-3.el7.x86_64.rpm#驗證版本
$ cri-dockerd --version#啟動服務
$ systemctl start cri-docker && systemctl enable cri-docker

三、部署、配置k8s

3.1、配置yum源

$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.30/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF#更新yum緩存
$ yum clean all  && yum makecache

3.2、安裝kubectl等組件

$ yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
$ systemctl enable --now kubelet

3.3、整合kubelet和cri-docker

#修改/usr/lib/systemd/system/cri-docker.service文件的ExecStart字段
ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=cni --cni-bin-dir=/opt/cni/bin --cni-cache-dir=/var/lib/cni/cache --cni-conf-dir=/etc/cni/net.d#重啟cri-dockerd服務
$ systemctl daemon-reload && systemctl restart cri-docker#配置kubelet服務, 修改/etc/sysconfig/kubelet文件的KUBELET_KUBEADM_ARGS字段
KUBELET_KUBEADM_ARGS="--container-runtime-endpoint=/run/cri-dockerd.sock"

3.4、預拉取鏡像

$ kubeadm config images pull  --cri-socket unix:///var/run/cri-dockerd.sock --image-repository registry.aliyuncs.com/google_containers

3.5、kubeadm初始化集群

$ kubeadm init \
--apiserver-advertise-address=192.168.110.8 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.30.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--token-ttl=0 \
--upload-certs \
--cri-socket unix:///var/run/cri-dockerd.sock#輸出如下
====================================================================
Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG=/etc/kubernetes/admin.confYou 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 192.168.110.8:6443 --token t9zogk.j7sak404br83rdqq \--discovery-token-ca-cert-hash sha256:db17d1cb5bbb30e7ad2e7876b89365053d017c765f9b081e5a1e16249db13eb7

提示registry.k8s.io/pause:3.9鏡像未找到

解決方案:

$ docker pull registry.aliyuncs.com/google_containers/pause:3.9$ docker tag registry.aliyuncs.com/google_containers/pause:3.9 registry.k8s.io/pause:3.9

3.4、安裝網絡插件

$ kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

3.5、負載節點加入集群

$ kubeadm join 192.168.110.8:6443 --token t9zogk.j7sak404br83rdqq         --discovery-token-ca-cert-hash sha256:db17d1cb5bbb30e7ad2e7876b89365053d017c765f9b081e5a1e16249db13eb7 --cri-socket unix:///var/run/cri-dockerd.sock#驗證集群:
[root@master ~]# kubectl  get no
NAME     STATUS   ROLES           AGE    VERSION
master   Ready    control-plane   17m    v1.30.0
node1    Ready    <none>          2m2s   v1.30.0

四、部署dashboard

由于新版本dashboard都使用helm進行安裝,先需要安裝helm

4.1、helm安裝

$ wget -c https://get.helm.sh/helm-v3.14.4-linux-amd64.tar.gz
$ tar zxvf helm-v3.14.4-linux-amd64.tar.gz
$ cp linux-amd64/helm /usr/local/bin/

4.2、部署dashboard

$ helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
$ helm upgrade --install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --create-namespace --namespace kubernetes-dashboard

4.3、修改svc為nodeport

$ kubectl edit svc -n kubernetes-dashboard kubernetes-dashboard-kong-proxy#字段  type: NodePort

4.4、獲取token

$ kubectl -n kubernetes-dashboard create token dashboard-admin

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12088.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12088.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12088.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VitePress變成可視化了

VitePressSimple 非技術人員搭建博客的門檻又降低了&#xff0c;這個開源項目把VitePress變成可視化了。 要搭建博客、教程網站&#xff0c;VitePress是門檻最低的方案之一&#xff0c;唯一和技術有關的就是會用到編輯器來操作。 現在好了&#xff0c;VitePressSimple直接把Vit…

Java 枚舉的使用與反射應用

文章目錄 一、定義方式1.1 簡單定義1.2 帶參數定義 二、反射應用1. 反射獲取枚舉常量2. 反射獲取枚舉屬性3. 動態調用枚舉方法4. 動態設置枚舉屬性5. 判斷枚舉類型6. 反射獲取枚舉信息 單例模式&#xff1a;枚舉類型是一種有限實例的類&#xff0c;枚舉常量在定義時就被限定為一…

解決在云服務器上無法使用QQ郵箱發送郵件的問題

最近在做測試demo的時候發現&#xff0c;在本地可以使用qq郵箱的服務來進行郵件的發送&#xff0c;但是把項目部署到云服務器上就沒辦法發送郵件&#xff0c;并且報錯是連接超時&#xff1a; 向xxxxxqq.com用戶發送綁定郵箱驗證碼異常&#xff1a;Mail server connection fail…

leetcode234-Palindrome Linked List

題目 給你一個單鏈表的頭節點 head &#xff0c;請你判斷該鏈表是否為回文鏈表 。如果是&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 示例 1&#xff1a; 輸入&#xff1a;head [1,2,2,1] 輸出&#xff1a;true 分析 可以用快慢指針的方式找到鏈表的…

自用代碼生成器代碼

代碼生成器 pom.xml文件中 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.ap…

【軟件測試】自動化測試 Selenium 篇(一)

一、什么是自動化測試 1、自動化測試介紹 自動化測試指軟件測試的自動化&#xff0c;在預設狀態下運行應用程序或者系統&#xff0c;預設條件包括正常和異常&#xff0c;最后評估運行結果。將人為驅動的測試行為轉化為機器執行的過程。 自動化就相當于將人工測試手段進行轉換…

【激活函數--下】非線性函數與ReLU函數

文章目錄 一、非線性函數在神經網絡中的重要性二、ReLU函數介紹及其實現2.1 ReLU函數概述2.2 ReLU函數的Python實現及可視化 一、非線性函數在神經網絡中的重要性 在神經網絡中&#xff0c;激活函數的選擇對于網絡的性能和能力至關重要。階躍函數和Sigmoid函數除了是激活函數的…

數據可視化-課堂記錄

week02 # 數據可視化的發展歷史 作用 格式塔原則 # 數據可視化的流程# 數據分析 指標體系建設 確定一個行業指標體系實現報表&#xff08;power bi python matplotlib seaborn pyecharts echarts&#xff09; # 數據分析面試 技術&#xff1a;sqlexcelpythonpowerbispss …

JS 實現冒泡排序

冒泡排序原理&#xff1a; 升序冒泡&#xff1a;兩次循環&#xff0c;相鄰元素兩兩比較&#xff0c;如果前面的大于后面的&#xff0c;就交互位置&#xff1b; 降序冒泡&#xff1a;兩次循環&#xff0c;相鄰元素兩兩比較&#xff0c;如果前面的小于后面的&#xff0c;就交互…

stable-diffusion-webui配置

源碼地址 https://github.com/AUTOMATIC1111/stable-diffusion-webui.git報錯Fresh install fail to load AttributeError: NoneType object has no attribute _id pydantic降級 pip uninstall pydantic pip install pydantic1.10.11記得要把clip-vit-large-patch14放在opena…

業務邏輯攻擊是什么,如何有效進行防護

想象一下&#xff1a;您的開發團隊剛推出了一款令人驚嘆的全新應用程序&#xff0c;它具有頂級的API安全性&#xff0c;通過客戶端保護對其進行了強化&#xff0c;甚至還設置了針對機器人攻擊的防御措施。你感到這款產品很有安全保障&#xff0c;自己的團隊出色地完成了工作。 …

解決Java Web應用中下載文件無法打開的問題

在Java Web應用中&#xff0c;文件下載是一個常見的功能。但有時候&#xff0c;即使代碼看起來正確&#xff0c;下載的文件卻無法正確打開。 問題描述 假設我們有以下代碼用于下載文件&#xff1a; response.addHeader("Content-Disposition", "attachment;fi…

服務器通的遠程桌面連接不上,關于服務器通暢但遠程桌面連接不上問題的專業分析

在日常的企業IT管理中&#xff0c;服務器遠程桌面連接是一個重要的操作功能。然而&#xff0c;有時會出現服務器網絡通暢&#xff0c;但遠程桌面無法連接的情況。 問題分析 1. 防火墻或安全組設置問題&#xff1a;服務器的防火墻或安全組可能阻止了遠程桌面連接的端口&#xf…

adobe安裝“Error:SyntaxError:JSON Parse error:Unexpec

mac電腦安裝Adobe時&#xff0c;會提示錯誤“Error:SyntaxError:JSON Parse error:Unexpected EOF”&#xff0c;這是怎么回事兒的&#xff0c;不管您是安裝AI、PS、PR還是LR&#xff0c;如果也遇到相同的問題&#xff0c;可以參考一下方法解決&#xff1a; 「adobe安裝提示錯誤…

Java RMI反序列化總結篇-01

1.java rmi反序列化 RMI 允許一個應用程序訪問另外一個服務器或虛擬機上的對象&#xff0c;方法和服務&#xff0c;它使遠程方法調用就像在本地調用一樣簡單。它為用戶屏蔽了底層的網絡傳輸細節&#xff0c;使用的時候只需適當處理異常即可。所以 RMI 是非常容易使用的&#x…

Kubernetes集群安裝

Kubernetes集群安裝 環境準備 192.168.1.53 k8s-master 192.168.1.52 k8s-node-1 192.168.1.51 k8s-node-2 設置三臺機器的主機名&#xff1a; Master上執行&#xff1a; [rootlocalhost ~]# hostnamectl --static set-hostname k8s-masterNode1上執行&#xff1a; [ro…

vue3+vite項目部署服務器,選擇非根目錄訪問

背景 vue3vite項目&#xff0c;需要部署服務器。 但是根目錄已經部署了另外一個項目A了&#xff0c;這個時候要在部署另外一個項目B。 問題 比如你的地址是http://test.com 之前直接輸入http://test.com即可訪問A項目 如果B項目也這么干的話就沖突了 訪問A&#xff1a;http…

哪款骨傳導耳機最值得入手?精選5款頂尖配置的骨傳導耳機,閉眼入也不踩雷!

作為一名有著多年工作經驗的數碼博主&#xff0c;我見證了無數因盲目追求新穎而引發的聽力問題。在此&#xff0c;我必須鄭重提醒大家&#xff0c;雖然市面上充斥著眾多聲稱能提供卓越音質和佩戴舒適度的骨傳導耳機品牌&#xff0c;但它們之間存在大量劣質產品&#xff0c;這類…

centos7安裝zabbix-server

zabbixan-server安裝 環境安裝zabbix安裝zabbix配置apachezabbix-UI前端配置修改zabbix為中文語言 環境 準備&#xff1a; centos7系統、mysql數據庫/MariaDB數據庫 mysql數據庫可參照&#xff1a;https://blog.csdn.net/weixin_61367575/article/details/138774428?spm1001.…

算法-卡爾曼濾波之卡爾曼濾波的第二個方程:預測方程(狀態外推方程)

在上一節中&#xff0c;使用了靜態模型&#xff0c;我們推導出了卡爾曼濾波的狀態更新方程&#xff0c;但是在實際情況下&#xff0c;系統都是動態&#xff0c;預測階段&#xff0c;前后時刻的狀態是改變的&#xff0c;此時我們引入預測方程&#xff0c;也叫狀態外推方程&#…