部署calico網絡插件

部署calico網絡插件

之前的k8s環境中主要使用了flannel作為網絡插件,這次改用calico。calico支持多種安裝方式,以下是具體的操作步驟。

1. 準備工作

  1. 環境信息
# 系統信息
root@master1:~# cat /etc/issue
Ubuntu 24.04 LTS \n \lroot@master1:~# uname -r
6.8.0-31-generic# k8s版本
root@master1:~# kubectl get node
NAME      STATUS     ROLES           AGE    VERSION
master1   NotReady   control-plane   2m2s   v1.28.2
node1     NotReady   <none>          84s    v1.28.2
node2     NotReady   <none>          79s    v1.28.2
  1. 版本配套

以最新的calico v3.28版本為例,適配如下k8s版本,我選用這個版本進行安裝。

  • v1.27
  • v1.28
  • v1.29
  • v1.30

參考自:System requirements | Calico Documentation (tigera.io)

2. Operator方式安裝

  1. 安裝operator
# 下載operator資源清單文件
root@master1:~/calico# wget https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yaml
# 或者
root@master1:~/calico# curl https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/tigera-operator.yaml -O# 創建應用資源清單文件,創建operator
root@master1:~/calico# kubectl create -f tigera-operator.yaml
namespace/tigera-operator created
customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/bgpfilters.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/caliconodestatuses.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipreservations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/kubecontrollersconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/apiservers.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/imagesets.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/installations.operator.tigera.io created
customresourcedefinition.apiextensions.k8s.io/tigerastatuses.operator.tigera.io created
serviceaccount/tigera-operator created
clusterrole.rbac.authorization.k8s.io/tigera-operator created
clusterrolebinding.rbac.authorization.k8s.io/tigera-operator created
deployment.apps/tigera-operator created
  1. 創建CRD資源
# 下載CRD資源清單文件
root@master1:~/calico# wget https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/custom-resources.yaml#修改custom-resources.yaml的ip
root@master1:~/calico# vim custom-resources.yamlapiVersion: operator.tigera.io/v1
kind: Installation
metadata:name: default
spec:# Configures Calico networking.calicoNetwork:ipPools:- name: default-ipv4-ippoolblockSize: 24			# 改為24,每個節點一個C段地址cidr: 10.244.0.0/16		# 與kubeadm初始化時"--pod-network-cidr=10.244.0.0/16"保持一致encapsulation: VXLANCrossSubnetnatOutgoing: EnablednodeSelector: all()# 創建應用資源清單文件,創建operator
root@master1:~/calico# kubectl create -f custom-resources.yaml
installation.operator.tigera.io/default created
apiserver.operator.tigera.io/default created
  1. 確認安裝的pod

watch kubectl get pods -n calico-system

問題記錄

  1. node節點NotReady
root@master1:~/calico# kubectl get pod -n calico-system
NAME                                      READY   STATUS    RESTARTS      AGE
calico-kube-controllers-b7fb9d96c-pbf9s   1/1     Running   0             47m
calico-node-gdsjw                         1/1     Running   2 (16m ago)   47m
calico-node-hvqg4                         1/1     Running   0             15m
calico-node-nntpd                         0/1     Running   0             42s
calico-typha-55ccdf44bf-v2zmm             1/1     Running   0             15m
calico-typha-55ccdf44bf-w5l8w             1/1     Running   0             47m
csi-node-driver-bqvb7                     2/2     Running   0             47m
csi-node-driver-cw59h                     2/2     Running   0             47m
csi-node-driver-hbw2n                     2/2     Running   0             47mWarning  Unhealthy  55s (x2 over 56s)  kubelet            Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/calico/bird.ctl: connect: connection refusedWarning  Unhealthy  28s                kubelet            Readiness probe failed: 2024-07-01 08:57:58.226 [INFO][267] confd/health.go 202: Number of node(s) with BGP peering established = 2
calico/node is not ready: felix is not ready: Get "http://localhost:9099/readiness": dial tcp: lookup localhost on 8.8.8.8:53: no such host

解決:

root@master1:~/calico# vi custom-resources.yaml
...
spec:# Configures Calico networking.calicoNetwork:ipPools:- name: default-ipv4-ippoolblockSize: 24cidr: 10.244.0.0/16encapsulation: VXLANCrossSubnetnatOutgoing: EnablednodeSelector: all()nodeAddressAutodetectionV4:		#增加的配置interface: ens*# 更新
root@master1:~/calico# kubectl apply -f custom-resources.yaml# 同時修改節點的dns
root@node1:~# cat /etc/netplan/01-concfg.yaml
network:version: 2renderer: networkdethernets:ens33:dhcp4: noaddresses:- 192.168.0.62/24routes:- to: 0.0.0.0/0via: 192.168.0.1nameservers:addresses:- 223.5.5.5- 223.6.6.6# 更改生效
root@node1:~# netplan apply

3. Manifest方式安裝

根據node節點數量和使用的db選擇如下之一方式進行安裝:

  • Install Calico with Kubernetes API datastore, 50 nodes or less
  • Install Calico with Kubernetes API datastore, more than 50 nodes
  • Install Calico with etcd datastore

以小于50個node,使用Kubernetes API datastore為例:

  1. 下載使用 Kubernetes API datastore的manifest

    curl https://raw.githubusercontent.com/projectcalico/calico/v3.28.0/manifests/calico.yaml -O
    
  2. 修改Pod CIDR

    取消注釋CALICO_IPV4POOL_CIDR,修改Pod CIDR。

  3. 基于YAML進行創建

kubectl apply -f calico.yaml

4. helm方式安裝

本次部署安裝calico作為k8s的網絡插件,使用helm進行安裝:

# 下載安裝helm
wget https://get.helm.sh/helm-v3.15.2-linux-amd64.tar.gz
tar xf helmelm-v3.15.2-linux-amd64.tar.gz
cd linux-amd64/helm /usr/local/bin/helm
helm version

安裝calico:

# 創建tigera-operator命名空間
kubectl create namespace tigera-operator
# 安裝tigera calico operator ,創建crd資源
helm install calico projectcalico/tigera-operator --version v3.28.0 --namespace tigera-operator
# 確認相關pod運行正常
watch kubectl get pods -n calico-system

準備工作

  • 已經按照helm3
  • 已經按照k8s環境
  • 已經配置完成kubeconfig
  • Calico可以管理主機上的calitunl接口。如果使用了NetworkManager,參考 Configure NetworkManager.

安裝

  1. 添加calico helm repo:
helm repo add projectcalico https://docs.tigera.io/calico/charts

如果要自定義chart相關的參數,可以配置values.yaml

cat > values.yaml <<EOF
installation:kubernetesProvider: AKScni:type: CalicocalicoNetwork:bgp: DisabledipPools:- cidr: 10.244.0.0/16encapsulation: VXLAN
EOF
  1. 創建tigera-operator命名空間.
kubectl create namespace tigera-operator
  1. 使用helm chart安裝Tigera Calico operator 和CRD
helm install calico projectcalico/tigera-operator --version v3.28.0 --namespace tigera-operator

或者使用values.yaml傳遞參數值 :

helm install calico projectcalico/tigera-operator --version v3.28.0 -f values.yaml --namespace tigera-operator
  1. 確認pod運行正常
watch kubectl get pods -n calico-system

說明

Tigera operator安裝到calico-system命名空間,其他安裝方式使用了 kube-system命名空間。

參考:

Install using Helm | Calico Documentation (tigera.io)

5. 參考資料

  1. https://helm.sh/zh/docs/intro/install/
  2. https://github.com/helm/helm/releases/
  3. https://docs.tigera.io/calico/latest/getting-started/kubernetes/
  4. Releases · projectcalico/calico (github.com)

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

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

相關文章

MyBatisPlus 常用的注解 表映射 主鍵映射 字段映射

介紹 官網&#xff1a;https://baomidou.com/reference/annotation/ 指定映射表 實體類使用駝峰命名&#xff0c;表名應為xx_xxx等格式這樣才可以映射&#xff0c;但是實際開發過程中可能不一致就可以使用該方法處理。 Data TableName("employee_235") //映射的表…

求質數題目

//需求:鍵盤錄入一個正整數x&#xff0c;判斷該整數是否為一個質數。 //質數: //如果一個整數只能被1和本身整除&#xff0c;那么這個數就是質數。否則這個數叫做合數 package Base_se.Base_701;import java.util.Scanner;/*** author gyf* ClassName test* Date 2024/7/1 19:…

Linux啟動elasticsearch,提示權限不夠

Linux啟動elasticsearch&#xff0c;提示權限不夠&#xff0c;如下圖所示&#xff1a; 解決辦法&#xff1a; 設置文件所有者&#xff0c;即使用戶由權限訪問文件 sudo chown -R 用戶名[:新組] ./elasticsearch-8.10.4 //切換到elasticsearch-8.10.4目錄同級 chown詳細格式…

銀行家算法-操作系統中避免死鎖的最著名算法

背景 有很多文章都會介紹銀行家算法。在百度和CSDN上搜一搜能搜出很多來。很多同學會覺得這個算法很深奧&#xff0c;有些文章寫的又很復雜&#xff0c;其實真的很簡單。這里簡單記錄一下基本原理&#xff0c;然后大家再配合其他文章看&#xff0c;就能加深理解。 算法原理 …

LLaVA1.5訓練數據和時間分析

LLaVA的PT+SFT訓練_llava sft-CSDN博客文章瀏覽閱讀379次。這個階段,使用8個A100(80G)訓練LLaVA-v1.5-13B大約需要20h。全量微調,非lora跑不起來啊,以前一直用swift,llama-factory這種框架式的代碼庫,但用原作者開源的代碼也是有很多好處的。在這個階段,使用 8 個 A100(…

Oracle中 ROW_NUMBER()的語法及在對應不同需求下應如何使用

Oracle數據庫中的ROW_NUMBER()函數是一個窗口函數&#xff0c;它為查詢結果集中的每一行分配一個唯一的序號。這個函數在數據分析、分頁查詢、數據去重和排名問題等方面非常有用。ROW_NUMBER()函數的語法如下&#xff1a; ROW_NUMBER() OVER ( [ PARTITION BY column ] ORDER …

3.用戶程序與驅動交互

驅動程序請使用第二章https://blog.csdn.net/chenhequanlalala/article/details/140034424 用戶app與驅動交互最常見的做法是insmod驅動后&#xff0c;生成一個設備節點&#xff0c;app通過open&#xff0c;read等系統調用去操作這個設備節點&#xff0c;這里先用mknode命令調…

64.WEB滲透測試-信息收集- WAF、框架組件識別(4)

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 內容參考于&#xff1a; 易錦網校會員專享課 上一個內容&#xff1a;63.WEB滲透測試-信息收集- WAF、框架組件識別&#xff08;3&#xff09;-CSDN博客 我們在…

【FedMut】Generalized Federated Learning via Stochastic Mutation

基于隨機變異的泛化聯邦學習 來源&#xff1a;AAAI2024 Abstract 問題&#xff1a; FedAvg 將相同的全局模型派發給客戶端進行本地訓練&#xff0c;容易陷入尖銳解&#xff0c;導致訓練出性能低下的全局模型 提出 FedMut&#xff1a; 本文提出了一種名為 FedMut 的新型FL方法…

2024免費的股票數據接口API

滄海數據 # Restful API https://tsanghi.com/api/fin/stock/{exchange_code}/realtime?token5dbb47113a4a43a6be1755673ce854db&ticker{ticker} 數據來源&#xff1a;滄海數據 請求方式&#xff1a;Get 數據格式&#xff1a;標準Json格式[{},...{}]

如何借用物聯網快速實現高標準農田信息化

如何借用物聯網快速實現高標準農田信息化 高標準農田信息化&#xff0c;作為現代農業發展的重要基石&#xff0c;是指在建設高產、穩產、節水、環保的農田基礎上&#xff0c;深度融合現代信息技術&#xff0c;實現農田管理的精準化、智能化和高效化。物聯網&#xff08;Intern…

vue3+ts實現計算兩個字符串的相似度

在TypeScript中&#xff0c;可以使用Levenshtein萊文斯坦距離算法來精確匹配兩個字符串的相似度百分比。Levenshtein距離是指兩個字符串之間&#xff0c;由一個轉換成另一個所需的最少編輯操作次數&#xff0c;這里的編輯操作包括插入、刪除、替換。 /*** Levenshtein距離算法…

Linux Static calls機制

文章目錄 前言一、簡介二、Background: indirect calls, Spectre, and retpolines2.1 Indirect calls2.2 Spectre (v2)2.3 RetpolinesConsequences 2.4 Static callsHow it works 三、其他參考資料 前言 Linux內核5.10內核版本引入新特性&#xff1a;Static calls。 Static c…

JAVA各版本-安裝教程

目錄 Java安裝包下載 Java安裝步驟 Java環境配置 Java安裝包下載 到Oracle官網下載自己需要的版本 Oracle Java下載&#xff1a;Java Archive | Oracle Hong Kong SAR, PRC 下拉選擇自己需要的版本&#xff08;本教程以Windows環境下&#xff0c;JAVA11為例&#xff09; 注…

C++初學者指南-3.自定義類型(第一部分)-指針

C初學者指南-3.自定義類型(第一部分)-指針 文章目錄 C初學者指南-3.自定義類型(第一部分)-指針1.為什么我們需要它們&#xff1f;2.T 類型的對象指針原始指針&#xff1a;T * 智能指針(C11) 3.操作符地址操作符 &解引用運算符 *成員訪問操作符 ->語法重定向 4.nullptr (…

【Linux】用戶管理

創建與刪除 adduser adduser 是一個交互式命令&#xff0c;用于創建新用戶并設置初始環境。 sudo adduser 用戶名示例&#xff1a; sudo adduser newuseruseradd useradd 是一個非交互式命令&#xff0c;允許你通過選項指定用戶的屬性。 sudo useradd [選項] 用戶名常見選…

SCADA系統對于工業生產的意義!

關鍵字:LP-SCADA系統, 傳感器可視化, 設備可視化, 獨立SPC系統, 智能儀表系統,SPC可視化,獨立SPC系統 SCADA系統在智能制造中扮演著至關重要的角色&#xff0c;它通過集成和自動化工廠車間的各種過程&#xff0c;提高了生產效率和產品質量&#xff0c;降低了成本&#xff0c;并…

【AI繪畫 ComfyUI】全新整合包來襲!一鍵安裝 即開即用,超好用的工作流形式的AI繪畫工具!

大家好&#xff0c;我是畫畫的小強 請在看這篇文章的人注意&#xff0c;本文章介紹的Comfy UI整合包是一個節點式的工作&#xff0c;流式的AI繪畫界面&#xff0c;并不適合新手使用。 如果你在找的是Web UI, 請前往我之前發布一篇的文章AI繪畫『Stable Diffusion』面向小白的…

【高中數學/基本不等式】設a,b>0.a+b=5,則 根號下(a+1)+根號下(b+3) 的最大值為?(2015重慶卷)

【問題】 設a,b>0.ab5,則根號下(a1)根號下(b3)的最大值為&#xff1f; 【解答】 解法一&#xff1a; 因雙根號計算不便&#xff0c;故采用平方后簡化之。 原式的平方a12倍根號下((a1)(b3))b3 ab42倍根號下((a1)(b3)) 因為ab5 a1b31359 9(a1)(b3)>2倍根號下((a1)…

【小貪】項目實戰——Zero-shot根據文字提示分割出圖片目標掩碼

目標描述 給定RGB視頻或圖片&#xff0c;目標是分割出圖像中的指定目標掩碼。我們需要復現兩個Zero-shot的開源項目&#xff0c;分別為IDEA研究院的GroundingDINO和Facebook的SAM。首先使用目標檢測方法GroundingDINO&#xff0c;輸入想檢測目標的文字提示&#xff0c;可以獲得…