Kubernetes 是否可能更改入口的IP?
是否可以更改入口的IPKubernetes 是否可能更改入口的IP?,kubernetes,Kubernetes,是否可以更改入口的IP apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-ingress spec: defaultBackend: service: name: test-reg port: number: 5000 现在是分配在自动23,但我想改变它,并保持静态 [ciuffoly@master-node ~]$ kubectl get ingresses NAME
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
spec:
defaultBackend:
service:
name: test-reg
port:
number: 5000
现在是分配在自动23,但我想改变它,并保持静态
[ciuffoly@master-node ~]$ kubectl get ingresses
NAME CLASS HOSTS ADDRESS PORTS AGE
test-ingress <none> * 192.168.1.23 80 5m9s
[ciuffoly@master-node~]$kubectl获取入口
名称类主机地址端口年龄
测试入口*192.168.1.23 80 5m9
是否可能“更改IP地址”在很大程度上取决于所使用的Kubernetes解决方案以及集群内如何处理入口
考虑到缺乏有关设置的信息,可能很难指出正确的方向。我决定发布一个社区维基答案,给出更多的基本想法,并指出在哪里寻找可能的答案
请随意扩展它
如果Kubernetes集群是受管理的(GKE
,EKS
,AKS
),并且您使用的是由云提供商管理的Ingress
,那么最好的选择是参考其关于IP分配的文档。一些提供程序通过ingres
注释允许您分配以前分配的特定IP地址(例如在Web UI
中)
如果Kubernetes集群是在本地配置的(kubespray
或kubeadm
或硬道
),或者类似于minikube
、microk8s
或带有Kubernetes的Docker桌面
,那么检查它如何处理入侵
资源仍然是最好的做法。例如,带有metallib
的kubespray
集群与microk8s
集群之间会存在差异
我的意思是,在大多数情况下,ingres
资源由ingres控制器
处理(集群内的Pod
或一组Pod
)。根据使用的解决方案,它在大多数情况下的工作方式如下:
- 为
入口
控制器(集群角色
,验证WebhookConfiguration
,角色绑定
等)创建资源
- 创建特定类型的
服务
(取决于解决方案)以指向部署
/守护程序集
,该守护程序集是入口控制器
(如nginx入口
,kong
等)
- 创建
入口控制器的部署
/守护程序集
,以接收流量并将其发送到入口
资源中指定的服务
对于IP地址更改,您需要特别了解该入口控制器如何暴露于外部源,以及是否/如何更改其配置。
使用kubeadm
、kubespray
创建的内部集群与使用Kubernetes的minikube
和Docker Desktop
等本地开发解决方案之间也存在固有差异
根据我的经验,我遇到过入口控制器
,它们通过以下方式暴露:
服务
类型为负载平衡器
——假设您的设置允许使用此类服务
主机网络
(绑定到节点上的端口
,因此使用其IP地址)
附加参考:
您好,您能为您的问题添加更多细节吗?我认为这是可能的,但如果没有有关设置的信息,就很难为您指出正确的解决方案。请说明您的Kubernetes群集是如何创建的,以及您使用的是哪个Ingress controller
。