k8s中的dns服务

在这里插入图片描述

思考

Kubernetes中有一个很重要的特性,服务自发现。一旦一个service被创建,该service的service IP和service port等信息都可以被注入到pod中供它们使用。Kubernetes主要支持两种service发现 机制:环境变量和DNS。没有dns服务的时候,kubernetes会采用环境变量的形式,一旦有很多个service,环境变量会变得很复杂,为了解决这个问题,我们使用DNS服务。

资料下载

下载地址:https://www.qstack.com.cn/skydns.zip

[root@k8s-master k8s]# unzip skydns.zip 
Archive:  skydns.zip
   creating: skydns/
  inflating: skydns/skydns-rc.yaml   
  inflating: skydns/skydns-svc.yaml  
  inflating: skydns/test_dns_pod.yaml

安装部署sky-dns

安装:
vim skydns-rc.yaml 
kubectl create -f skydns-rc.yaml
vim skydns-svc.yaml 
kubectl create -f skydns-svc.yaml
检查:
[root@k8s-master skydns]# kubectl get pod --namespace=kube-system 
NAME                       READY     STATUS    RESTARTS   AGE
kube-dns-453684471-gxhwn   4/4       Running   0          1m

修改kubelet配置

修改各node节点上的/etc/kubernetes/kubelet配置文件,增加如下行:
KUBELET_ARGS="--cluster_dns=10.254.230.254 --cluster_domain=cluster.local"

重启各node节点kubelet:
systemctl restart kubelet

检验dns是否生效

创建测试pod
kubectl create -f test_dns_pod.yaml

进入测试pod
kubectl exec -it busybox2 sh

域名解析测试
nslookup kubernetes

猜你喜欢

转载自blog.csdn.net/qq_37362891/article/details/110941725
今日推荐