[英]Kubernetes Cluster APP DNS
如果我注册了域名www.domain.com
并且我有新的kubernetes集群正在运行。 我已经成功启动了Deployments
and Services
来公开需求。
该服务正在我的GCE群集上创建LoadBalancer
,并且当我尝试通过外部IP访问我的APP
时,它的工作正常。
但这是我理想地想要实现的目标:
要将我的应用程序的所有流量都路由为www.app.domain.com
, www.app2.domain.com
。 经过研究,我发现我需要一个Ingress Controller
最好是NGINX
服务器),但我一直在尝试这样做,但失败了。
这是为我的部署公开JSON的服务:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": 'node-js-srv'
},
"spec": {
"type": 'LoadBalancer',
"label": {
'app': 'node-js-srv'
},
"ports": [
{
"targetPort": 8080,
"protocol": "TCP",
"port": 80,
"name": "http"
},
{
"protocol": "TCP",
"port": 443,
"name": "https",
"targetPort": 8080
}
],
"selector": {
"app": 'node-js'
},
}
}
GCE / GKE已经有一个Ingress Controller
,您可以使用它。
您必须将服务指定为NodePort
类型,并从Ingress
类型创建资源请参阅: https : NodePort
您可以在这里找到GCE的示例https://github.com/kubernetes/ingress/tree/master/examples/deployment/gce
服务:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": 'node-js-srv'
},
"spec": {
"type": 'NodePort',
"label": {
'app': 'node-js-srv'
},
"ports": [
{
"targetPort": 8080,
"protocol": "TCP",
"port": 80,
"name": "http"
},
{
"protocol": "TCP",
"port": 443,
"name": "https",
"targetPort": 8080
}
],
"selector": {
"app": 'node-js'
},
}
}
入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
spec:
rules:
- host: www.app.domain.com
http:
paths:
- backend:
serviceName: node-js-srv
servicePort: 80
- host: www.app2.domain.com
http:
paths:
- backend:
serviceName: xyz
servicePort: 80
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.