K8S headless service服務詳解

2022-06-25 04:54:13 字數 1346 閱讀 9812

coredns的作用:在k8s裡,我們想要通過name來訪問服務的方式就是在deployment上面新增一層service,這樣我們就可以通過service name來訪問服務了,那其中的原理就是和coredns有關,它將service name解析成cluster ip,

這樣我們訪問cluster ip的時候就通過cluster ip作負載均衡,把流量分布到各個pod上面

k8s中資源的全域性fqdn格式:

service_name.namespace_name.domain.ltd.

domain.ltd.=svc.cluster.local.     #這是預設k8s集群的網域名稱。

1、clusterip舉例

clusterip的原理:乙個service可能對應多個endpoint(pod)client訪問的是cluster ip,通過iptables規則轉到real server,從而達到負載均衡的效果

備註: 從上面的結果中我們可以看到雖然service有2個endpoint,但是dns查詢時只會返回service的位址。

具體client訪問的是哪個real server,是由iptables來決定的

2、headless舉例

解釋:dns查詢會如實的返回2個真實的endpoint

headless使用場景

第一種:自主選擇權,有時候client想自己來決定使用哪個real server,可以通過查詢dns來獲取real server的資訊。

第二種:headless service的對應的每乙個endpoints,即每乙個pod,都會有對應的dns網域名稱;這樣pod之間就能互相訪問,集群也能單獨訪問pod

K8S 2 k8s 集群搭建

kubeadm是官方社群推出的乙個用於快速部署kubernetes集群的工具。這個工具能通過兩條指令完成乙個kubernetes集群的部署 建立乙個 master 節點 kubeadm init 將乙個 node 節點加入到當前集群中 kubeadm join 在開始之前,部署 kubernetes...

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

curl不通 k8s curl 訪問k8s api

chmod x jq mv jq usr bin 啟用非安全埠 kubectl proxy port 8080 檢視預設namespace pod列表 curl localhost 8080 api v1 namespaces default pods jq r items.metadata.nam...