k8s离线环境下部署【calico】网络插件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

经常私有化部署项目的朋友们都知道,运维人员经常要私有化部署。

今天给大家带来的是私有化部署k8s网络插件calico


一、calico是什么,为什么选calico?

Calico 是一个开源的云原生网络和网络安全解决方案,专门为 Kubernetes、OpenShift 等容器编排平台设计。它不是一个传统意义上的网络插件,而是一个完整的网络策略引擎

Calico vs 其他网络插件对比

特性 Calico Flannel Weave Net Cilium
网络模型 三层路由/Overlay Overlay (VXLAN) Overlay eBPF 驱动
性能 ⭐⭐⭐⭐⭐ (三层路由) ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐
安全性 ⭐⭐⭐⭐⭐ (策略丰富) ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐
复杂性 中等 简单 中等 复杂
策略能力 丰富 基础 中等 极其丰富
BGP 支持
适合场景 企业生产环境 简单小集群 中等规模 高性能要求

所以选calico

二、使用步骤

本文采用opeartor方法安装

1. 下载operator文件

复制代码
wget https://raw.githubusercontent.com/projectcalico/calico/v3.27.2/manifests/tigera-operator.yaml

将镜像仓库改为指定仓库:

c 复制代码
# 可以搜索一下image: 这个关键字
# 本文中使用的v3.27.2版本只要改一个位置,在25279 行
······
      containers:
        - name: tigera-operator
          # image: quay.io/tigera/operator:v1.32.5    # 改为指定仓库
          image: myharbor.com/tigera/operator:v1.32.5 
          imagePullPolicy: IfNotPresent
          command:
            - operator
······

2. 创建资源文件

代码如下(示例):

c 复制代码
tee custom-resources.yaml <<-'EOF'
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
  name: default
spec:
  calicoNetwork:
    bgp: Enabled
    containerIPForwarding: Enabled
    hostPorts: Enabled
    ipPools:
      - blockSize: 26
        cidr: 10.10.0.0/16
        disableBGPExport: false
        encapsulation: IPIP
        natOutgoing: Enabled
        nodeSelector: all()
    linuxDataplane: Iptables
    multiInterfaceMode: None
    nodeAddressAutodetectionV4:
      kubernetes: NodeInternalIP
  cni:
    ipam:
      type: Calico
    type: Calico
  controlPlaneReplicas: 2
  flexVolumePath: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
  kubeletVolumePluginPath: /var/lib/kubelet
  logging:
    cni:
      logFileMaxAgeDays: 30
      logFileMaxCount: 10
      logFileMaxSize: 1024Mi
      logSeverity: Info
  nodeUpdateStrategy:
    rollingUpdate:
      maxUnavailable: 1
    type: RollingUpdate
  nonPrivileged: Disabled
  registry: myharbor.com  # 改为指定仓库
  variant: Calico
EOF

3. 应用

复制代码
kubectl create -f tigera-operator.yaml
kubectl create -f custom-resources.yaml

4. 上传镜像到私有仓库

这边就是不断通过describe pod 查看pod创建需要哪些镜像,然后我们公网下载后传到内网仓库补齐所需镜像。

5. 验证效果

看到节点都处于ready状态说明网络插件正常运行

复制代码
[root@UOS-41-m1 ~]# kubectl get node
NAME        STATUS   ROLES           AGE   VERSION
uos-41-m1   Ready    control-plane   17d   v1.34.2
uos-42-m2   Ready    control-plane   16d   v1.34.2
uos-43-m3   Ready    control-plane   16d   v1.34.2

总结

以上就是今天要讲的内容,本文绍了离线部署Calico网络插件的方法,大家又学了一招。

相关推荐
中杯可乐多加冰7 小时前
深度解析openFuyao核心组件:从NUMA亲和调度看云原生算力释放新思路
华为·云原生·k8s·gpu算力·openfuyao
科技D人生7 小时前
Kubernetes 学习总结(47)—— Kubernetes 持久化存储之 Volume、PV、PVC、StorageClass 到底怎么用?
云原生·容器·kubernetes·k8s·k8s 数据卷
新手小白*1 天前
Kubernetes 持久化存储与特殊容器
k8s
退役小学生呀3 天前
二十六、K8s集群备份恢复
linux·云原生·容器·kubernetes·k8s
悬弧6 天前
第2章:工作负载管理 - 可视化应用部署
kubernetes·k8s
fushan20126 天前
Windows 虚拟机配置与驱动安装记录
windows·k8s·vm·kubevirt
一只栖枝6 天前
K8s 认证级别怎么选?适配不同运维场景
云原生·容器·kubernetes·k8s·cka
虚伪的空想家6 天前
首发:TDengine3.3.6版本使用K8S部署
java·docker·容器·kubernetes·k8s·时序数据库·tdengine
新手小白*6 天前
K8S-Ingress资源对象
k8s