首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有命令可以检查哪些pod应用了服务

是否有命令可以检查哪些pod应用了服务
EN

Stack Overflow用户
提问于 2020-06-30 15:40:14
回答 2查看 288关注 0票数 0

我已经创建了一个service.yaml并创建了服务。

代码语言:javascript
复制
kind: Service
apiVersion: v1
metadata:
  name: cass-operator-service
spec:
  type: LoadBalancer
  ports:
    - port: 9042
      targetPort: 9042
  selector:
    name: cass-operator

有没有办法检查服务已经应用了哪些pod?

我希望使用上述服务连接到Google Cloud中的一个集群,该集群在external_ip/port (9042端口)上运行Kubernetes/Cassandra。但是使用上面的服务,我不能。

kubectl get svc展示

代码语言:javascript
复制
NAME                    TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)          AGE
cass-operator-service   LoadBalancer   10.51.247.82   34.91.214.233   9042:31902/TCP   73s

因此,该服务可能正在监听9042,但正在转发到31902中的pod。我希望两个端口都是9042。有可能这样做吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-30 16:54:05

最好的方法是跟随标签和选择器

您的pod有一个标签部分,服务在选择器部分中使用它,下面是一些示例:

https://kubernetes.io/docs/concepts/services-networking/service/

您可以使用以下命令找到服务的选择器:

代码语言:javascript
复制
kubectl describe svc cass-operator-service

您可以使用以下命令列出标签:

代码语言:javascript
复制
kubectl get pods --show-labels
票数 2
EN

Stack Overflow用户

发布于 2020-06-30 16:14:57

您可以通过选择器查询获取实例,如下所示

代码语言:javascript
复制
kubectl get pods -l name=cass-operator

还可以通过运行以下命令列出kubernetes服务后面提供流量服务的所有pod

代码语言:javascript
复制
kubectl get ep <service name> -o=jsonpath='{.subsets[*].addresses[*].ip}' | tr ' ' '\n' | xargs -I % kubectl get pods -o=name --field-selector=status.podIP=%
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62652525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档