在 Azure 中为 kubernetes 配置两个环境
Configure two environment for kubernetes within Azure
Azure kubernetes 服务允许我只为一个集群分配一个IP 地址。我在这个集群中创建了两个命名空间,我想通过 url 区分这两个命名空间作为环境。
命名空间
- 阶段
- 开发
对这些命名空间的期望访问类似于 {namespace}.cloudapp.azure.com
。
在每个命名空间中定义入口控制器时,会分配相同的 IP 地址。通常我应该如何实现这种分离但保持相同的集群?
对于您的用例,您只需要一个入口控制器。 IE。 https://kubernetes.github.io/ingress-nginx/
为此,您需要为通向单个集群 IP 的命名空间添加 DNS 条目。
如果您只想访问两个 DNS 名称:
- stage.cloudapp.azure.com
- dev.cloudapp.azure.com
如果您只想在这些名称空间中使用一个应用程序,则添加两个条目可能就足够了。如果您想在命名空间中部署多个应用程序,您应该考虑为以下内容添加通配符 DNS 条目:
- *.stage.cloudapp.azure.com
- *.dev.cloudapp.azure.com
通过此设置,您可以添加以下格式的入口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-example-with-hostname
namespace: dev
spec:
rules:
- host: dev.cloudapp.azure.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: service
port:
number: 80
有关更多信息,请查看此文档:https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting
Azure kubernetes 服务允许我只为一个集群分配一个IP 地址。我在这个集群中创建了两个命名空间,我想通过 url 区分这两个命名空间作为环境。
命名空间
- 阶段
- 开发
对这些命名空间的期望访问类似于 {namespace}.cloudapp.azure.com
。
在每个命名空间中定义入口控制器时,会分配相同的 IP 地址。通常我应该如何实现这种分离但保持相同的集群?
对于您的用例,您只需要一个入口控制器。 IE。 https://kubernetes.github.io/ingress-nginx/
为此,您需要为通向单个集群 IP 的命名空间添加 DNS 条目。 如果您只想访问两个 DNS 名称:
- stage.cloudapp.azure.com
- dev.cloudapp.azure.com
如果您只想在这些名称空间中使用一个应用程序,则添加两个条目可能就足够了。如果您想在命名空间中部署多个应用程序,您应该考虑为以下内容添加通配符 DNS 条目:
- *.stage.cloudapp.azure.com
- *.dev.cloudapp.azure.com
通过此设置,您可以添加以下格式的入口:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-example-with-hostname
namespace: dev
spec:
rules:
- host: dev.cloudapp.azure.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: service
port:
number: 80
有关更多信息,请查看此文档:https://kubernetes.io/docs/concepts/services-networking/ingress/#name-based-virtual-hosting