在特定的 kubernetes 节点上部署 istio 网关
Deploy istio gateway on a specific kubernetes node
在使用 Istio 设置命名空间租赁的多集群、单网格中(纯粹有超过 5,000 个节点),我想创建一个网关并将其分配给特定节点,当前文档不涵盖此内容网关 here however the IstioOperator does here 通过 NodeSelector
我将如何分配特定节点(以及可能的 Istio 网关的特定 public IP)
我已经调查了 ,但是我没有看到任何适当的文档化方法来解决这个问题。
编辑 我希望网关成为集群上所有命名空间的唯一入口
Gateway
对象不过是 istio-ingressgateway
pod 的 Envoy
配置,它是一个 Envoy
代理。
因此,如果您希望将您的网关部署在特定节点上,您应该将nodeSelector
或nodeAffinity
添加到istio-ingressgateway
的Deployment
对象中。
编辑
假设您已 istioctl
下载。
$ kubectl label no worker-1-v1-21 istio-gatewaynode=valid
$ istioctl manifest generate --set profile=demo > istio.yaml
$ vim istio.yaml
搜索名为 istio-ingressgateway
的 Deployment
,然后将以下行添加到 nodeAffinity
部分,如下所示:
...
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- ppc64le
- s390x
requiredDuringSchedulingIgnoredDuringExecution: <-
nodeSelectorTerms: <-
- matchExpressions: <- add
- key: istio-gatewaynode <- these
operator: In <- lines
values: <-
- valid <-
containers:
- args:
...
使用生成的 yaml 安装 istio:
# kubectl create -f istio.yaml
...
# kubectl get po -n istio-system -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
istio-egressgateway-5547fcc8fc-wntbc 1/1 Running 0 13m 192.168.184.5 worker-2-v1-21 <none> <none>
istio-ingressgateway-85b7fddd86-mntmz 1/1 Running 0 13m 192.168.166.70 worker-1-v1-21 <none> <none>
istiod-6659979bdf-vwc4x 1/1 Running 0 13m 192.168.184.4 worker-2-v1-21 <none> <none>
在使用 Istio 设置命名空间租赁的多集群、单网格中(纯粹有超过 5,000 个节点),我想创建一个网关并将其分配给特定节点,当前文档不涵盖此内容网关 here however the IstioOperator does here 通过 NodeSelector
我将如何分配特定节点(以及可能的 Istio 网关的特定 public IP)
我已经调查了
编辑 我希望网关成为集群上所有命名空间的唯一入口
Gateway
对象不过是 istio-ingressgateway
pod 的 Envoy
配置,它是一个 Envoy
代理。
因此,如果您希望将您的网关部署在特定节点上,您应该将nodeSelector
或nodeAffinity
添加到istio-ingressgateway
的Deployment
对象中。
编辑
假设您已 istioctl
下载。
$ kubectl label no worker-1-v1-21 istio-gatewaynode=valid
$ istioctl manifest generate --set profile=demo > istio.yaml
$ vim istio.yaml
搜索名为 istio-ingressgateway
的 Deployment
,然后将以下行添加到 nodeAffinity
部分,如下所示:
...
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- ppc64le
- s390x
requiredDuringSchedulingIgnoredDuringExecution: <-
nodeSelectorTerms: <-
- matchExpressions: <- add
- key: istio-gatewaynode <- these
operator: In <- lines
values: <-
- valid <-
containers:
- args:
...
使用生成的 yaml 安装 istio:
# kubectl create -f istio.yaml
...
# kubectl get po -n istio-system -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
istio-egressgateway-5547fcc8fc-wntbc 1/1 Running 0 13m 192.168.184.5 worker-2-v1-21 <none> <none>
istio-ingressgateway-85b7fddd86-mntmz 1/1 Running 0 13m 192.168.166.70 worker-1-v1-21 <none> <none>
istiod-6659979bdf-vwc4x 1/1 Running 0 13m 192.168.184.4 worker-2-v1-21 <none> <none>