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



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

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演出

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。可以做到吗?

最好的方法是遵循标签和电子

容器具有标签部分,服务在选择器部分中使用它,以下示例如下:

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

您可以使用以下方法找到服务的选择器:

kubectl describe svc cass-operator-service

您可以通过以下方式列出标签:

kubectl get pods --show-labels

您可以通过使用选择器查询来获取 pod,如下所示

kubectl get pods -l name=cass-operator

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

kubectl get ep <service name> -o=jsonpath='{.subsets[*].addresses[*].ip}' | tr ' ' 'n' | xargs -I % kubectl get pods -o=name --field-selector=status.podIP=%

相关内容

最新更新