我正在一个项目中,我需要启动具有特定CIDR范围的特定部署。我有什么办法可以做到这一点?
我需要这些CIDR范围用于不同的部署。
例如:
部署1-具有10个运行CIDR 10.10.10.0/24的副本
部署1-拥有10个运行CIDR 10.10.11.0/24的副本
答案 0 :(得分:1)
这可以通过使用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
使用
kubectl apply -f nginx.yaml
使用来检查正在运行的Pod的IP地址
kubectl get pods -o wide