10.k8s的附加组件(coreDNS组件)

发布于:2024-05-10 ⋅ 阅读:(25) ⋅ 点赞:(0)

目录

一、概念

二、查看k8s集群的coreDNS的IP地址

三、验证


一、概念

  • service发现是k8s中的一个重要机制,其基本功能为:在集群内通过服务名对服务进行访问,即需要完成从服务名到ClusterIP的解析。
  • k8s主要有两种service发现机制:环境变量和DNS。没有DNS服务的时候,k8s会采用环境变量的形式,但一旦有多个service,环境变量会变复杂,为解决该问题,我们使用DNS服务。
  • kubeadm部署的k8s集群自带coreDNS组件,二进制部署需要自己手动部署;

  k8s系统中安装了coreDNS组件后,会有一个coreDNS开头的pod资源; 

[root@k8s1 ~]# kubectl get pods -o wide -A

二、查看k8s集群的coreDNS的IP地址

查看kubelet的配置文件中,可以看到集群dns的地址;

vim /var/lib/kubelet/config.yaml 

查看k8s集群中DNS的svc的详细信息,可以看到,里面解析了coreDNS的地址在endpoint列表中; 

[root@k8s1 k8s]# kubectl get svc -A
NAMESPACE     NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE
default       kubernetes   ClusterIP   10.200.0.1       <none>        443/TCP                  3d21h
default       svc01        NodePort    10.200.200.200   <none>        99:31000/TCP             8h
kube-system   kube-dns     ClusterIP   10.200.0.10      <none>        53/UDP,53/TCP,9153/TCP   3d21h
[root@k8s1 k8s]# kubectl describe -n kube-system svc kube-dns
Name:              kube-dns
Namespace:         kube-system
Labels:            k8s-app=kube-dns
                   kubernetes.io/cluster-service=true
                   kubernetes.io/name=CoreDNS
Annotations:       prometheus.io/port: 9153
                   prometheus.io/scrape: true
Selector:          k8s-app=kube-dns
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.200.0.10
IPs:               10.200.0.10
Port:              dns  53/UDP
TargetPort:        53/UDP
Endpoints:         10.100.1.20:53,10.100.1.21:53
Port:              dns-tcp  53/TCP
TargetPort:        53/TCP
Endpoints:         10.100.1.20:53,10.100.1.21:53
Port:              metrics  9153/TCP
TargetPort:        9153/TCP
Endpoints:         10.100.1.20:9153,10.100.1.21:9153
Session Affinity:  None
Events:            <none>

三、验证

# 安装dig
[root@k8s1 k8s]# yum -y install bind-utils
[root@k8s1 k8s]# kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.200.0.1       <none>        443/TCP        5d11h
svc01        NodePort    10.200.200.200   <none>        99:31000/TCP   46h
[root@k8s1 k8s]# dig @10.200.0.10 svc01.default.svc.oslee.com +short
10.200.200.200

应用软件在连接集群内的中间件时(比如数据库),可以使用svc名代替IP地址。

===============================至此,已成艺术==============================


网站公告

今日签到

点亮在社区的每一天
去签到