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

相关推荐
张3232 天前
k8s etcd备份恢复
数据库·k8s·etcd
脑子加油站4 天前
kubernetes安装部署流程
k8s·安全架构
SilentSamsara4 天前
Kubernetes 网络模型:CNI 插件与 Pod 间通信的底层实现
网络·云原生·容器·架构·kubernetes·k8s
久绊A5 天前
在K8s中构建Apache服务的弹性伸缩防线
k8s
梵得儿SHI7 天前
SpringCloud 生产级落地:Docker 容器化 + K8s 编排部署全攻略(含完整 yaml + 避坑指南)
docker·云原生·kubernetes·k8s·springcloud·微服务部署·java 后端
Minla8 天前
kubectl常用命令别名设置(linux|windows)
linux·运维·服务器·k8s
SilentSamsara8 天前
etcd 运维:数据一致性、备份恢复与性能调优
运维·服务器·数据库·kubernetes·kubectl·k8s·etcd
SilentSamsara9 天前
存储卷体系:EmptyDir/HostPath/PV/PVC/StorageClass 的选型决策树
服务器·微服务·云原生·容器·架构·kubernetes·k8s
SilentSamsara9 天前
Service 与 Ingress:从 ClusterIP 到云厂商 ALB 的完整流量路径
linux·运维·服务器·微服务·kubernetes·k8s·运维开发
SilentSamsara10 天前
ConfigMap 与 Secret:配置注入的四种姿势与安全边界
linux·运维·服务器·安全·微服务·kubernetes·k8s