簡體   English   中英

如何通過在本地Docker-Kubernetes上運行的服務訪問Kubernetes Pod

[英]How to access a Kubernetes Pod via a Service that is running on localhost's Docker-Kubernetes

我不確定如何訪問在服務后面運行的Pod。

我已經安裝並正在運行Docker CE。 這樣,我就在運行Docker'Kubernetes'。

我創建了一個Pod文件,然后kubectl created它……然后使用端口轉發來測試它是否正常工作。 蜱!

接下來,我創建了一個服務,作為LoadBalancer, kubectl create也創建了該服務,並且該服務正在運行...但是我不確定如何對其進行測試/訪問正在運行的Pod。

這是終端輸出:


Tests-MBP:k8s test$ kubectl get pods --show-labels
NAME          READY   STATUS    RESTARTS   AGE   LABELS
hornet-data   1/1     Running   0          4h    <none>

Tests-MBP:k8s test$ kubectl get services --show-labels
NAME             TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)          AGE   LABELS
hornet-data-lb   LoadBalancer   10.0.44.157   XX.XX.XX.XX    8080:32121/TCP   4h    <none>
kubernetes       ClusterIP      10.0.0.1      <none>         443/TCP          14d   component=apiserver,provider=kubernetes

Tests-MBP:k8s test$ 

不確定pod標簽<none>是否有問題? 我正在為服務選擇器使用標簽。

這是兩個文件...

apiVersion: v1
kind: Pod
metadata:
  name: hornet-data
  labels:
    app: hornet-data
spec:
  containers:
    - image: ravendb/ravendb
      name: hornet-data
      ports:
        - containerPort: 8080

apiVersion: v1
kind: Service
metadata:
  name: hornet-data-lb
spec:
  type: LoadBalancer
  ports:
    - port: 8080
      protocol: TCP
      targetPort: 8080
  selector:
    app: hornet-data

更新1:

按照@vasily的要求:

Tests-MBP:k8s test$ kubectl get ep hornet-data-lb
NAME             ENDPOINTS   AGE
hornet-data-lb   <none>      5h

更新2:

關於/來自Vasily的更多信息:

Tests-MBP:k8s test$ kubectl apply -f hornet-data-pod.yaml 
pod/hornet-data configured

Tests-MBP:k8s test$ kubectl get pods --show-labels
NAME          READY   STATUS    RESTARTS   AGE   LABELS
hornet-data   1/1     Running   0          5h    app=hornet-data

Tests-MBP:k8s test$ kubectl get services --show-labels
NAME             TYPE           CLUSTER-IP    EXTERNAL-IP    PORT(S)          AGE   LABELS
hornet-data-lb   LoadBalancer   10.0.44.157   XX.XX.XX.XX    8080:32121/TCP   5h    <none>
kubernetes       ClusterIP      10.0.0.1      <none>         443/TCP          14d   component=apiserver,provider=kubernetes

@vailyangapov基本上是通過OP中的注釋來回答這個問題的-這個回答分為兩個部分。

  1. 我沒有在清單中apply更改 我對我的服務yaml文件進行了一些更改,但沒有推送這些更改。 因此,我需要做kubectl apply -f myPod.yaml

  2. 我當時的情況不對 當前上下文指向一個測試的Azure Kubernetes服務。 我以為一切都在Docker-CE隨附的我的localhost集群上(稱為docker-for-desktop集群)。 由於這是一台新機器,因此我無法通過Docker啟用Kubernetes(這是安裝Docker-CE之后的手動步驟..默認設置為未啟用/未勾選)。 手動注意到這一點后,我勾選了啟用Kubernetes的選項, docker-for-desktop) cluster was installed. Then I manually changed over to this context: docker docker-for-desktop) cluster was installed. Then I manually changed over to this context: docker-for-desktop) cluster was installed. Then I manually changed over to this context: kubectl config use-context docker-for-desktop`。

這兩個錯誤都很簡單。 向他們提供答案的原因是希望能夠幫助其他人使用此信息來幫助他們檢查自己的設置,如果某些事情無法正常進行-與我相似的問題正在發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM