0

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

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

例如:

  1. 部署 1 - 使用 CIDR 10.10.10.0/24 运行 10 个副本

  2. 部署 1 - 使用 CIDR 10.10.11.0/24 运行 10 个副本

4

1 回答 1

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

应用上述 yaml 使用

kubectl apply -f nginx.yaml

使用检查正在运行的 pod 的 ip

kubectl get pods -o wide
于 2020-06-19T06:20:55.497 回答