W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
本文展示了如何連接 Kubernetes 集群上運行的服務(wù)。
你必須擁有一個 Kubernetes 的集群,同時你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個節(jié)點的集群上運行本教程,且這些節(jié)點不作為控制平面主機。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個你自己的集群,或者你可以使用下面任意一個 Kubernetes 工具構(gòu)建:
要獲知版本信息,請輸入 ?kubectl version
?。
在 Kubernetes 里,節(jié)點、 Pod 和 服務(wù) 都有自己的 IP。 許多情況下,集群上的節(jié)點 IP、Pod IP 和某些服務(wù) IP 是路由不可達的, 所以不能從集群之外訪問它們,例如從你自己的臺式機。
你有多種可選方式從集群外連接節(jié)點、Pod 和服務(wù):
NodePort
?或 ?LoadBalancer
?的服務(wù),可以從外部訪問它們。典型情況下,kube-system 名字空間中會啟動集群的幾個服務(wù)。 使用 ?kubectl cluster-info
? 命令獲取這些服務(wù)的列表:
kubectl cluster-info
輸出類似于:
Kubernetes master is running at https://192.0.2.1
elasticsearch-logging is running at https://192.0.2.1/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy
kibana-logging is running at https://192.0.2.1/api/v1/namespaces/kube-system/services/kibana-logging/proxy
kube-dns is running at https://192.0.2.1/api/v1/namespaces/kube-system/services/kube-dns/proxy
grafana is running at https://192.0.2.1/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
heapster is running at https://192.0.2.1/api/v1/namespaces/kube-system/services/monitoring-heapster/proxy
這一輸出顯示了用 proxy 動詞訪問每個服務(wù)時可用的 URL。例如,此集群 (使用 Elasticsearch)啟用了集群層面的日志。如果提供合適的憑據(jù),可以通過 ?https://192.0.2.1/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/
? 訪問,或通過一個 ?kubectl proxy
? 來訪問: ?http://localhost:8080/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/
?。
如前所述,你可以使用 ?kubectl cluster-info
? 命令取得服務(wù)的代理 URL。 為了創(chuàng)建包含服務(wù)末端、后綴和參數(shù)的代理 URLs,你可以在服務(wù)的代理 URL 中添加: ?http://kubernetes_master_address/api/v1/namespaces/namespace_name/services/service_name[:port_name]/proxy
?
如果還沒有為你的端口指定名稱,你可以不用在 URL 中指定 port_name。 對于命名和未命名端口,你還可以使用端口號代替 port_name。
默認情況下,API 服務(wù)器使用 HTTP 為你的服務(wù)提供代理。 要使用 HTTPS,請在服務(wù)名稱前加上 ?https:
?: ?http://<kubernetes_master_address>/api/v1/namespaces/<namespace_name>/services/<service_name>/proxy
? URL 的 ?<service_name>
? 段支持的格式為:
<service_name>
? - 使用 http 代理到默認或未命名端口<service_name>:<port_name>
? - 使用 http 代理到指定的端口名稱或端口號https:<service_name>:
? - 使用 https 代理到默認或未命名端口(注意尾隨冒號)https:<service_name>:<port_name>
? - 使用 https 代理到指定的端口名稱或端口號_search?q=user:kimchy
?,你可以使用:http://192.0.2.1/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/_search?q=user:kimchy
_cluster/health?pretty=true
?,你會使用:https://192.0.2.1/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/_cluster/health?pretty=true
健康信息與下面的例子類似:
{
"cluster_name" : "kubernetes_logging",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 5,
"active_shards" : 5,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 5
}
_cluster/health?pretty=true
?,你會使用:https://192.0.2.1/api/v1/namespaces/kube-system/services/https:elasticsearch-logging:/proxy/_cluster/health?pretty=true
你或許能夠?qū)?nbsp;API 服務(wù)器代理的 URL 放入瀏覽器的地址欄,然而:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: