每天5分钟玩转Kubernetes | DNS访问Service

书籍来源:cloudman《每天5分钟玩转Kubernetes》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:每天5分钟玩转Kubernetes | 汇总_COCOgsta的博客-CSDN博客


在Cluster中,除了可以通过Cluster IP访问Service,Kubernetes还提供了更为方便的DNS访问。

kubeadm部署时会默认安装coredns组件,如图所示。

e59dc14951e8d0fff61fe068f5821ffd.png

coredns是一个DNS服务器。每当有新的Service被创建,coredns会添加该Service的DNS记录。Cluster中的Pod可以通过<SERVICE_NAME>.<NAMESPACE_NAME>访问Service。

比如可以用httpd-svc.default访问Service httpd-svc,如图所示。

7fc76ea77b7055deb73dbbeed6e1b03f.png

如上所示,我们在一个临时的busybox Pod中验证了DNS的有效性。另外,由于这个Pod与httpd-svc同属于default namespace,因此可以省略default直接用httpd-svc访问Service,如图所示。

ede6fcf8c9caaaf99ccc944818d3f563.png

用nslookup查看httpd-svc的DNS信息,如图所示。

6b984367933f3f136c0c0f2677566e86.png

DNS服务器是
coredns.kube-system.svc.cluster.local,这实际上就是coredns组件,它本身是部署在kube-system namespace中的一个Service。


httpd-svc.default.svc.cluster.local是httpd-svc的完整域名。

如果要访问其他namespace中的Service,就必须带上namesapce了。kubectl get namespace查看已有的namespace,如图所示。

29bc915ad282514dd750a2047f8b0536.png

在kube-public中部署Service httpd2-svc,配置如下所示。

[root@k8s-master ~]# cat httpd2.yml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpd2
  namespace: kube-public
spec:
  replicas: 3
  selector:
    matchLabels:
      run: httpd2
  template:
    metadata:
      labels:
        run: httpd2
    spec:
      containers:
      - name: httpd2
        image: httpd
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: httpd2-svc
  namespace: kube-public
spec:
  selector:
    run: httpd2
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 80
[root@k8s-master ~]# 

通过namespace: kube-public指定资源所属的namespace。多个资源可以在一个YAML文件中定义,用“---”分割。执行kubectl apply创建资源,如图所示。

f5299ce9f8dc318ab4ec984f66d52ead.png

查看kube-public的Service,如图所示。

bca4f7789a34027c1706ce7154b4dfb2.png

在busybox Pod中访问httpd2-svc,如图所示。

f75d67de6209f6a6285dbea44515b7de.png

因为不属于同一个namespace,所以必须使用httpd2-svc.kube- public才能访问到。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值