DNS 访问 Service - 每天5分钟玩转 Docker 容器技术(138)
在 Cluster 中,除了可以通過 Cluster IP 訪問 Service,Kubernetes 還提供了更為方便的 DNS 訪問。
kubeadm 部署時會默認安裝 kube-dns 組件。
kube-dns 是一個 DNS 服務器。每當有新的 Service 被創建,kube-dns 會添加該 Service 的 DNS 記錄。Cluster 中的 Pod 可以通過?<SERVICE_NAME>.<NAMESPACE_NAME>?訪問 Service。
比如可以用?httpd-svc.default?訪問 Service?httpd-svc。
如上所示,我們在一個臨時的 busybox Pod 中驗證了 DNS 的有效性。另外,由于這個 Pod 與?httpd-svc?同屬于?default?namespace,可以省略?default?直接用?httpd-svc?訪問 Service。
用?nslookup?查看?httpd-svc?的 DNS 的信息。
DNS 服務器是?kube-dns.kube-system.svc.cluster.local,這實際上就是 kube-dns 組件,它本身是部署在?kube-system?namespace 中的一個 Service。
httpd-svc.default.svc.cluster.local?是?httpd-svc?的完整域名。
如果要訪問其他 namespace 中的 Service,就必須帶上 namesapce 了。kubectl get namespace?查看已有的 namespace。
在?kube-public?中部署 Service?httpd2-svc,配置如下:
通過?namespace: kube-public?指定資源所屬的 namespace。多個資源可以在一個 YAML 文件中定義,用?---?分割。執行?kubectl apply?創建資源:
查看?kube-public?的 Service:
在 busybox Pod 中訪問?httpd2-svc:
因為屬于不同的 namespace,必須使用?httpd2-svc.kube-public?才能訪問到。
Kubernetes 集群內部可以通過 Cluster IP 和 DNS 訪問 Service,那么集群外部如何訪問呢?下一節我們將討論這個問題。
書籍:
1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html
總結
以上是生活随笔為你收集整理的DNS 访问 Service - 每天5分钟玩转 Docker 容器技术(138)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李嘉诚再卖地3800亩,房价要变天了吗?
- 下一篇: 福特汽车计划在欧洲裁员 3200 人,德