【问题标题】:Different pod CIDR for different deployment Kubernetes不同部署 Kubernetes 的不同 pod CIDR
【发布时间】:2020-06-18 19:46:48
【问题描述】:

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

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

例如:

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

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

【问题讨论】:

    标签: kubernetes kubernetes-networking


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2023-03-14
      • 2019-08-11
      • 2019-03-08
      • 2021-05-07
      • 2020-07-20
      • 2023-03-26
      • 2020-10-12
      • 1970-01-01
      相关资源
      最近更新 更多