如何通过localhost的Docker-Kubernetes上运行的服务访问Kubernetes Pod

问题描述 投票:-1回答:1

我不确定如何访问服务后面运行的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

Update 1:

根据@vasily的要求:

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

Update 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

docker kubernetes
1个回答
1
投票

@vailyangapov基本上通过OP中的评论回答了这个问题 - 这个答案分为两个部分。

  1. 我没有apply我的清单中的变化。我对我的服务yaml文件进行了一些更改,但没有推动这些更改。因此我需要做kubectl apply -f myPod.yaml
  2. 我在错误的背景下。当前的上下文指向Azure Kubernetes服务测试。我认为这是我的localhost集群中的所有Docker-CE(称为docker-for-desktop集群)。由于这是一台新机器,我无法使用Docker启用Kubernetes(这是安装Docker-CE之后的手动步骤..默认设置是未启用/未勾选)。一旦我手动注意到这一点,我勾选了启用Kubernetes和docker-for-desktop) cluster was installed. Then I manually changed over to this context:kubectl配置use-context docker-for-desktop`的选项。

这两个错误都很简单。为他们提供答案的原因是希望帮助其他人使用这些信息来帮助他们审查自己的设置,如果某些事情无法正常工作 - 我也会遇到类似的问题。

© www.soinside.com 2019 - 2024. All rights reserved.