用于不同部署Kubernetes的不同Pod CIDR

时间:2020-06-18 19:46:48

标签: kubernetes kubernetes-networking

我正在一个项目中,我需要启动具有特定CIDR范围的特定部署。我有什么办法可以做到这一点?

我需要这些CIDR范围用于不同的部署。

例如:

  1. 部署1-具有10个运行CIDR 10.10.10.0/24的副本

  2. 部署1-拥有10个运行CIDR 10.10.11.0/24的副本

1 个答案:

答案 0 :(得分:1)

这可以通过使用Calico的IPPool实现。

  1. 使用calico安装kubernetes。

  2. 您创建一个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
相关问题