繁体   English   中英

Kubernetes集群APP DNS

[英]Kubernetes Cluster APP DNS

如果我注册了域名www.domain.com并且我有新的kubernetes集群正在运行。 我已经成功启动了Deployments and Services来公开需求。

该服务正在我的GCE群集上创建LoadBalancer ,并且当我尝试通过外部IP访问我的APP时,它的工作正常。

但这是我理想地想要实现的目标:

要将我的应用程序的所有流量都路由为www.app.domain.comwww.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM