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网络插件的方法,大家又学了一招。

相关推荐
ShirleyWang0126 小时前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s
spider_xcxc8 小时前
K8s 部署学习笔记
docker·容器·kubernetes·云计算·k8s
ShirleyWang01210 小时前
Day02 K3s NGF(Nginx Gateway Fabric)单 Worker 环境网关更新与故障处置 SOP
linux·服务器·python·k8s·k3s
ShirleyWang01210 小时前
DAY01 K3s 私有化部署排障复盘与 SOP
linux·服务器·k8s·k3s·企业部署
XUHUOJUN4 天前
AKS 不是安装在 Windows Server 上,而是运行在 Windows Server 之上的 Azure 平台能力
windows·架构·k8s·azure local·azure stack
Geek-Chow4 天前
Connecting kubectl to a Private EKS Cluster Over an Internal Domain
kubernetes·k8s·aws
spider_xcxc6 天前
Docker Compose 容器通信详解:同一个 Compose 文件才能互通吗?
docker·容器·k8s·容器化·容器网络
欢醉11 天前
k8s调用服务异常cannot allocate memory
kubernetes·k8s
万里侯14 天前
GitOps 漂移检测:集群里改了配置,Git 还以为一切正常
微服务·容器·k8s
spider_xcxc15 天前
云上网络基石(阿里云):深入解读阿里云VPC及其应用生态
网络·阿里云·云计算·k8s·运维开发·虚拟化