我可以在k8中找到我想要的服务,但是我不知道它的容器名称,如何找到该服务的容器名称?

时间:2020-06-04 06:40:09

标签: kubernetes kubectl

我可以使用k get svc获得服务,但是我不知道它位于哪个pod,我无法从我拥有的pod名称中分辨出来,如何找到与服务相关的pod? / p>

2 个答案:

答案 0 :(得分:1)

服务通过使用标签选择器选择窗格。因此,您可以在服务的选择器中列出标签与标签相匹配的Pod。

kubectl get pods -l=app=tea
NAME                   READY   STATUS    RESTARTS   AGE
tea-5b6c494c68-b4n7t   1/1     Running   0          2d17h

答案 1 :(得分:1)

定义服务时,还要定义特定服务的选择器。

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376

在此示例中,我的服务将选择器定义为app:MyApp
该服务将查找具有相同标签选择器的容器。 服务选择器的控制器不断扫描与其选择器匹配的Pod,然后将所有更新发布到也称为“ my-service”的Endpoint对象。 您可以获取此服务将流量路由到的Pod列表。
kubectl get po -l app:MyApp
如果使用此命令未获得任何容器,则很明显该服务无法找到包含标签选择器的容器。 是的,没有Pod的服务也可以存在。请参见doc