我有非分层应用程序需要连接到在kubernetes pod中运行的dockerised应用程序。
鉴于pod可能已经死亡并再次使用不同的ip地址,我的应用程序如何检测到这一点?任何方式来分配重定向到任何现有pod的主机名?
答案 0 :(得分:1)
您必须使用kubernetes服务。服务为您提供了一种与静态IP和DNS进行通信的方式(如果您的客户端应用程序位于群集内)。
https://kubernetes.io/docs/concepts/services-networking/service/
您可以通过多种方式实现:
答案 1 :(得分:0)
除了Bal Chua的工作和来自silverfox的建议之外,我想向您展示该方法 我用Kubernetes来公开和管理来自外部的传入流量:
第1步:部署应用程序
在此示例中,Kubernetes示例hello应用程序将在端口8080 / tcp
上运行kubectl run web --image=gcr.io/google-samples/hello-app:1.0 --port=8080
第2步:在内部公开部署服务
此命令告诉Kubernetes公开端口8080 / tcp以与外部世界进行交互:
kubectl expose deployment web --target-port=8080 --type=NodePort
之后,请检查它是否暴露了运行命令:
kubectl get service web
第3步:管理Ingress资源
Ingress将流量发送到Kubernetes内部的适当服务。
打开文本编辑器,然后创建一个文件 basic-ingress.yaml
内容:
apiVersion:
extensions/v1beta1
kind: Ingress
metadata:
name: basic-ingress
spec:
backend:
serviceName: web
servicePort: 8080
应用配置:
kubectl apply -f basic-ingress.yaml
就是这样。是时候测试了。获取Kubernetes安装的外部IP地址:
kubectl get ingress basic-ingress
并使用此地址运行Web浏览器以查看hello应用程序的工作情况。