我正在开发一个项目,我需要启动具有特定 CIDR 范围的特定部署。我有什么办法可以做到这一点?
我需要这些 CIDR 范围用于不同的部署。
例如:
部署 1 - 使用 CIDR 10.10.10.0/24 运行 10 个副本
部署 1 - 使用 CIDR 10.10.11.0/24 运行 10 个副本
我正在开发一个项目,我需要启动具有特定 CIDR 范围的特定部署。我有什么办法可以做到这一点?
我需要这些 CIDR 范围用于不同的部署。
例如:
部署 1 - 使用 CIDR 10.10.10.0/24 运行 10 个副本
部署 1 - 使用 CIDR 10.10.11.0/24 运行 10 个副本
这可以通过使用 Calico 的 IPPool 来实现。
用 calico 安装 Kubernetes。
您创建一个 IPPool,将以下 Yaml 内容复制到一个文件中。
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:
name: pool1
spec:
cidr: 192.168.0.0/18
ipipMode: Never
natOutgoing: true
disabled: false
nodeSelector: all()
并使用以下命令在上面应用此 yaml
calicoctl create -f pool1.yaml
现在部署任何这样的服务
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
annotations:
"cni.projectcalico.org/ipv4pools": "[\"192.168.0.0/18\"]"
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
应用上述 yaml 使用
kubectl apply -f nginx.yaml
使用检查正在运行的 pod 的 ip
kubectl get pods -o wide