在工作時碰到乙個場景,k8s中的容器需要訪問外部的 es 服務和 kibana, 若把 es 和 kibana 的配置以固定ip的形式寫入配置檔案中,萬一 es 和 kibana 搬遷,ip 位址變更那改起來會非常不靈活和容易遺漏。
這時我們可以使用 k8s 的 service。
外部的 es ip為 192.168.0.200 埠為 9400;這裡建立乙個 endpoints 和 service。
通過 ingress 管理 kibana,讓使用者通過 kibana.klvchen.com 這個網域名稱來訪問 192.168.0.200 上的 kibana。cat es.yaml
apiversion: v1
kind: service
metadata:
name: es-svc
namespace: klvchen
spec:
ports:
- port: 9400
targetport: 9400
protocol: tcp
name: tcp
---apiversion: v1
kind: endpoints
metadata:
name: es-svc
namespace: klvchen
subsets:
- addresses:
- ip: 192.168.0.200
ports:
- port: 9400
name: tcp
# 在 k8s 中的容器使用 es-svc.klvchen.svc.cluster.local:9400 就可以訪問到 es 了。
注意:kibana.klvchen.com 網域名稱需要解析到 ingress 上
K8S中Service屬性解釋
service的yaml檔案簡單解釋 apiversion v1 kind service 型別 metadata 元資料 name details service的名稱 labels 自定義標籤屬性列表 details service details spec 詳細描述 ports service...
k8s建立service,令外部埠訪問
一 pod ip 每個pod 都有自己的 ip 位址,存在於 pod scope。當 controller 用新 pod 替代發生故障的 pod 時,新 pod 會分配到新的 ip 位址。乙個pod 的 容器們containers 共享 networknamespaces,包括ip 位址。這意味著在...
k8s 之 Service 詳解(一)
service用途 service 為後端pod提供一組負載均衡 建立服務 kubectl expose 快速建立服務 kubctl get svc 檢視服務資源 cluster ip 顯示集群ip,只能在集群內部可以被訪問,服務的主要目標就是使集群內部的pod可以訪問這組pod。targetpor...