Service externalName类型

ExternalNameService的第四种类型,其主要的作用是将集群外部服务的服务引入到集群内部来,能实现类似于常规服务一样的名称解析,服务发现等功能,但是它所有的对应的服务记录维护既不需要标签选择器关联任何对象,也无需定义任何端口和端点,但是必须在服务定义中使用ExternalName定义一个cname用于返回真正提供服务的名称的别名。

ExternalName类型Servcie在coreDNS中解析为一个cname,其对应的是一个外部服务的名称,该服务要能在外部DNS中被解析;此处的外部指的是公网DNS,或者在CoreDNS中通过forward转发给公司内部的DNS。

ExternalName示例

  1. 编写配置清单
root@k8s-master01:~/yaml/chapter07# vim externalname-redis-svc.yaml
kind: Service
apiVersion: v1
metadata:
  name: externalname-redis-svc
  namespace: default
spec:
  type: ExternalName                # 类型为ExternalName
  externalName: redis.ik8s.io    # externalname-redis-svc将会被解析为redis.ik8s.io
  ports:
  - name: redisport
    protocol: TCP
    port: 6379
    targetPort: 6379
    nodePort: 0
  selector: {}                      # {}表示没有选择条件,无需标签选择器
  1. 应用配置清单
root@k8s-master01:~/yaml/chapter07# kubectl apply -f externalname-redis-svc.yaml 
service/externalname-redis-svc created

root@k8s-master01:~/yaml/chapter07# kubectl get svc externalname-redis-svc 
NAME                     TYPE           CLUSTER-IP   EXTERNAL-IP     PORT(S)    AGE
externalname-redis-svc   ExternalName   <none>       redis.ik8s.io   6379/TCP   12s
  1. 验证ExternalName解析结果
root@k8s-master01:~/yaml/chapter07# kubectl exec demoapp-5f7d8f9847-r7h7b -- nslookup externalname-redis-svc
Server:         10.96.0.10
Address:        10.96.0.10#53
# 此为coreDNS中的Cname记录
externalname-redis-svc.default.svc.cluster.local        canonical name = redis.ik8s.io. 
Name:   redis.ik8s.io
Address: 1.2.3.4       # 此为cname通过外部DNS解析的结果。


原文始发于微信公众号(TechOps之窗):Service externalName类型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/287168.html

(0)
土豆大侠的头像土豆大侠

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!