我正在使用 minikube 版本:v1.25.1、win10、k8s 版本 1.22
有 1 個節點,2 個 pod:main和front1 個服務 - svc-main。
我正在嘗試執行到前面并通過服務呼叫主服務并看到一些訊息確認連接正常。
主要.yaml:
apiVersion: v1
kind: Pod
metadata:
labels:
app: main
name: main
namespace: default
spec:
containers:
- name: main
image: nginx
command: ["/bin/sh","-c"]
args: ["while true; do echo date; sleep 2; done"]
前端.yaml:
apiVersion: v1
kind: Pod
metadata:
labels:
app: front
name: front
spec:
containers:
- image: nginx
name: front
command:
- /bin/sh
- -c
- while true; echo date; sleep 2; done
服務是這樣創建的:
k expose pod ngin --name=svc-main --type=ClusterIP --port=80 --target-port=80
k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc-main ClusterIP 10.104.26.249 <none> 80:31775/TCP 11m
當我嘗試從前面卷曲時,它顯示“無法決議主機:svc-main”
k exec front -it -- sh
curl svc-main:80
或這個
curl http://svc-main:80
curl 10.104.26.249:80
我嘗試了埠 31775,結果相同。我究竟做錯了什么?!
uj5u.com熱心網友回復:
問題是當您使用 yaml 檔案創建 Kubernetes pod 時,您正在使用自定義命令和引數覆寫在 nginx docker 映像中定義的默認入口點和 Cmd:
command: ["/bin/sh","-c"]
args: ["while true; do echo date; sleep 2; done"]
這就是為什么 nginx Web 服務器不能在創建的 pod 中作業的原因。您應該洗掉這些行,洗掉正在運行的 pod,并創建新的 pod。之后,您將能夠通過運行訪問 nginx 網頁
# curl svc-main
在您的前艙內。
您可以在此處閱讀有關在 Pod 中為容器定義命令和引數的更多資訊
這里有一篇關于 Docker CMD 和 Entrypoint 的好文章
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/422918.html
標籤:
下一篇:如何從天藍色管道部署到工件?
