docker - 如何通过在 localhost 的 Docker-Kubernetes 上运行的服务访问 Kubernetes Pod
问题描述
我不确定如何访问在服务后面运行的 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$
不确定吊舱标签<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:
来自/来自瓦西里的更多信息:
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 中的评论回答了这个问题——这个答案分为两部分。
我没有
apply
在清单中进行更改。我对我的服务 yaml 文件进行了一些更改,但没有推动这些更改。因此,我需要这样做kubectl apply -f myPod.yaml
。我在错误的上下文中。当前上下文指向一个测试 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:
kubectl config use-context docker-for-desktop 的选项。
这两个错误都很简单。为他们提供答案的原因是希望帮助其他人使用这些信息来帮助他们检查自己的设置,如果某些东西不能正常工作 - 正在发生与我类似的问题。
推荐阅读
- model-view-controller - 如何使用主视图上的模态对话框在局部视图上显示单个记录?
- python - 如何从索引开始查找第一次出现的布尔值
- c++ - 在数组中返回函数参数的函数模板
- asp.net - 声纳与 .net repos 的 jenkins 文件集成
- node.js - 更新数组后猫鼬不保存记录
- nginx - Nginx 使用 proxy_pass 将 POST 更改为 GET
- c# - 我想统一为我的精灵的颜色添加一些变化
- c# - DDD 存储库与工厂,我是在补水还是创建?
- python - Youtube 播放列表不适用于 discord.py 音乐机器人
- git - 为什么 Github Pull Request 的基础分支文件(左侧)显示的内容与 HEAD 版本不同?