- A+
所属分类:未分类
使用 ACS Engine 在 Azure 上安装好了 Kubernetes 之后,就可以使用 Loadbalancer 类型的服务了。测试条件下,一般会使用不同域名通过同一个 Ingress Controller 访问不同服务的方式。
例如我们创建一个 Nginx Ingress Controller,服务启动之后会看到大概这样的信息:
$ kubectl describe svc ingress-nginx Name: ingress-nginx Namespace: ingress-nginx ... Type: LoadBalancer IP: 10.0.22.78 LoadBalancer Ingress: 104.216.145.198 ...
接下来可以使用 az 命令查询我们 Azure 中已经生效的外部 IP 所对应的记录内容:
az network public-ip list \ --query "[?ipAddress=='104.216.145.198']"
会得到一条 JSON 记录:
{ "dnsSettings": { "domainNameLabel": "k8s-5b", "fqdn": "k8s-5b.cloudapp.azure.com", "reverseFqdn": null }, ... "name": "...", "idleTimeoutInMinutes": 4, "ipAddress": "104.216.145.198", "ipConfiguration": { ...
接下来,我们可以给这个 Ip 设置一个 AZURE 的内部域名,同样使用 az 客户端:
az network public-ip update --name=k8s-master-ip-k8s-5b55d212-28708154 \ --set dnsSettings.domainN ameLabel='awesome-name-fcsaqz87d' \ --resource-group=k8s
命令执行后,会返回一长串的描述信息,跟上述的 List 结果类似,节选我们的变更部分:
"dnsSettings": { "domainNameLabel": "awesome-name-fcsaqz87d", "fqdn": "awesome-name-fcsaqz87d.southeastasia.cloudapp.azure.com", "reverseFqdn": null },
这里可以看到,这个外部 IP 有了一个域名,接下来,我们可以在我们的域名提供商控制台上,为域名设置 CNAME 记录,指到这个 fqdn 上,然后可以用 nslookup 上进行验证,例如:
nslookup prom.abc.xyz canonical name = awesome-name-fcsaqz87d.southeastasia.cloudapp.azure.com. Name: awesome-name-fcsaqz87d.southeastasia.cloudapp.azure.com
就可以用外部域名来访问我们 Kubernetes 上的 Ingress 资源了。
更进一步的,可以将泛域名设置到这一 IP 上,同时使用 Let’s Encrypt 的泛域名证书来完成对服务的 HTTPS 加固过程。
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫