Kubernetes?DNS解析實戰(zhàn)過程
一、前言
Pod 的解析記錄
只有當 Pod 通過就緒探針(Readiness Probe)并成為 Ready 狀態(tài)時,它才會被加入到對應的 Endpoint 對象中,CoreDNS 才會提供該 Pod 的 DNS 記錄(僅限于 hostname.subdomain.namespace.svc.cluster.local 這種格式)。
Service 的解析記錄
Service 的解析記錄在 Service 對象本身被創(chuàng)建 時就會立刻添加到 CoreDNS 中,完全不依賴 其后端是否有任何就緒的 Pod。
二、場景
由于k8s原生機制受限,當我們某些服務在啟動時就依賴pod域名解析,才能完成啟動,這時就陷入死循環(huán)。
比如etcd集群的啟動配置:

三、解決方案
service新增配置
apiVersion: v1
kind: Service
metadata:
name: kuboard-etcd
spec:
clusterIP: None
publishNotReadyAddresses: true # 核心配置:發(fā)布未就緒地址
selector:
app: kuboard-etcd
ports:
- name: client
port: 2379
protocol: TCP
targetPort: 2379
- name: peer
port: 2380
protocol: TCP
targetPort: 2380
sessionAffinity: Node
type: ClusterIP 當你為 Service 設(shè)置 publishNotReadyAddresses: true 時,無論 Pod 是否就緒,只要它匹配 Service 的 Selector,其 IP 地址就會被加入到 Endpoint 的 addresses 列表中。
這意味著 CoreDNS 會立即為這些未就緒的 Pod 創(chuàng)建對應的 DNS 解析記錄。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
kubernetes k8s 存儲動態(tài)掛載配置詳解
這篇文章主要為大家介紹了kubernetes k8s 存儲動態(tài)掛載配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
阿里云kubernetes查找鏡像中jar包的方法(docker查看鏡像中的jar)
這篇文章主要給大家介紹了關(guān)于阿里云kubernetes查找鏡像中jar包的方法,也就是在docker查看鏡像中的jar,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-09-09
kubernetes?Volume存儲卷configMap學習筆記
這篇文章主要為大家介紹了kubernetes?Volume存儲卷configMap學習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05
云原生技術(shù)kubernetes之volumes容器的使用
這篇文章主要為大家介紹了云原生技術(shù)kubernetes之volumes容器使用方式,?有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03

