我正在学习Kubernetes并在GKE上创建一个示例应用程序。我可以在minikube上创建pod、容器和服务,但在使用我的自定义域(如hr.mydomain.com
(在互联网上公开它时遇到了问题。
我的应用程序说file-process
正在8080端口上运行,现在我想将它公开到互联网上。我尝试在GKE上创建负载均衡器类型的服务。我得到了负载均衡器的IP,并将其映射到hr.mydomain.com
的记录。
我的问题是-如果重新启动此服务,服务IP是否每次都会更改,并且服务变得不可访问
我该如何管理它?将域名映射到svc时的最佳做法是什么?
文件服务
apiVersion: v1
kind: Service
metadata:
name: file-process-service
labels:
app: file-process-service
spec:
type: LoadBalancer
ports:
- name: http
port: 80
targetPort: 8080
protocol: TCP
selector:
app: file-process-api
Google Kubernetes引擎旨在尽可能多地省去配置方面的麻烦。即使您重新启动该服务,也不会改变其在互联网上的可用性。
网络(包括负载平衡(在GKE集群中自动管理:
。。。Kubernetes使用服务为在Pods中运行的应用程序提供稳定的IP地址。默认情况下,Pods不公开外部IP地址,因为kube代理管理每个节点上的所有流量。Pods及其容器可以自由通信,但集群外的连接无法访问服务。例如,在上图中,群集之外的客户端无法使用其ClusterIP访问前端服务。
这意味着,如果您公开服务,并且它将具有外部IP,则在删除负载均衡器之前,它将保持不变:
网络负载均衡器知道集群中的所有节点,并配置VPC网络的防火墙规则,允许使用服务的外部IP地址从VPC网络外部连接到服务。您可以为服务分配一个静态外部IP地址。
此时,当您的服务前面有一个带有静态公共IP的负载平衡器时,您可以将此IP设置为域的a记录。