前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小技巧:外部域名挂接 Azure 中的 K8S 负载均衡

小技巧:外部域名挂接 Azure 中的 K8S 负载均衡

作者头像
崔秀龙
发布2019-07-23 11:28:05
8820
发布2019-07-23 11:28:05
举报
文章被收录于专栏:伪架构师

使用 ACS Engine 在 Azure 上安装好了 Kubernetes 之后,就可以使用 Loadbalancer 类型的服务了。测试条件下,一般会使用不同域名通过同一个 Ingress Controller 访问不同服务的方式。

例如我们创建一个 Nginx Ingress Controller,服务启动之后会看到大概这样的信息:

代码语言:javascript
复制
$ 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 所对应的记录内容:

代码语言:javascript
复制
az network public-ip list \
--query "[?ipAddress=='104.216.145.198']"

会得到一条 JSON 记录:

代码语言:javascript
复制
{
"dnsSettings": {
   "domainNameLabel": "k8s-5b",
   "fqdn": "k8s-5b.cloudapp.azure.com",
   "reverseFqdn": null
},
...
"name": "...",
"idleTimeoutInMinutes": 4,
"ipAddress": "104.216.145.198",
"ipConfiguration": {
...

接下来,我们可以给这个 Ip 设置一个 AZURE 的内部域名,同样使用 az 客户端:

代码语言:javascript
复制
az network public-ip update
--name=k8s-master-ip-k8s-5b55d212-28708154 \
--set dnsSettings.domainN
ameLabel='awesome-name-fcsaqz87d' \
--resource-group=k8s

命令执行后,会返回一长串的描述信息,跟上述的 List 结果类似,节选我们的变更部分:

代码语言:javascript
复制
"dnsSettings": {
   "domainNameLabel": "awesome-name-fcsaqz87d",
   "fqdn": "awesome-name-fcsaqz87d.southeastasia.cloudapp.azure.com",
   "reverseFqdn": null
 },

这里可以看到,这个外部 IP 有了一个域名,接下来,我们可以在我们的域名提供商控制台上,为域名设置 CNAME 记录,指到这个 fqdn 上,然后可以用 nslookup 上进行验证,例如:

代码语言:javascript
复制
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 加固过程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 伪架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档