[K8S] 在 Kubernetes 裡跑 curl 來測試內部服務

[K8S] 在 Kubernetes 裡跑 curl 來測試內部服務

有時會需要測試架在 Kubernetes service 裡的內部網站,

比如說像 https://eck-es-master.svc.cluster.local:9200 這種網址,

在叢集外面是不能存取的。

當然你可以選擇用 port-forward 的方式來存取,

另一種方法就是直接在 K8S 叢集裡跑 curl 囉~

 

執行下面的指令,來建立一個 curl 的 pod 並進入 shell:

kubectl run curl --image=curlimages/curl -it -- sh

 

接著就可以在裡面打 curl 指令測試囉:

$ curl -L -v https://eck-es-master.svc.cluster.local:9200

*   Trying 10.1.9.70:9200...
* Connected to eck-es-master.ssb-elasticsearch.svc.cluster.local (10.1.9.70) port 9200 (#0)
* ALPN: offers h2
* ALPN: offers http/1.1
*  CAfile: /cacert.pem
*  CApath: none
* [CONN-0-0][CF-SSL] TLSv1.3 (OUT), TLS handshake, Client hello (1):
* [CONN-0-0][CF-SSL] TLSv1.3 (IN), TLS handshake, Server hello (2):
* [CONN-0-0][CF-SSL] TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* [CONN-0-0][CF-SSL] TLSv1.3 (IN), TLS handshake, Certificate (11):
* [CONN-0-0][CF-SSL] TLSv1.3 (OUT), TLS alert, unknown CA (560):
* SSL certificate problem: unable to get local issuer certificate
* Closing connection 0
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

 

如果已經退出了這個 pod,因為我沒有加  --rm 選項,

所以可以隨時  kubectl exec -it curl -- sh 進這個 pod 再來測試囉~

 

參考資料:How to run curl in Kubernetes (for troubleshooting)

(本頁面已被瀏覽過 574 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料