提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、calico是什么,为什么选calico?
- 二、使用步骤
-
- [1. 下载operator文件](#1. 下载operator文件)
- [2. 创建资源文件](#2. 创建资源文件)
- [3. 应用](#3. 应用)
- [4. 上传镜像到私有仓库](#4. 上传镜像到私有仓库)
- [5. 验证效果](#5. 验证效果)
- 总结
前言
经常私有化部署项目的朋友们都知道,运维人员经常要私有化部署。
今天给大家带来的是私有化部署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网络插件的方法,大家又学了一招。