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

Man*_*dha 2 kubernetes

我制作了一个 service.yaml 并创建了该服务。

kind: Service
apiVersion: v1
metadata:
  name: cass-operator-service
spec:
  type: LoadBalancer
  ports:
    - port: 9042
      targetPort: 9042
  selector:
    name: cass-operator
Run Code Online (Sandbox Code Playgroud)

有没有办法检查该服务已应用于哪些 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
Run Code Online (Sandbox Code Playgroud)

因此,该服务可能正在侦听 9042,但正在转发到 31902 中的 Pod。我希望两个端口均为 9042。可以这样做吗?

Víc*_*iol 5

最好的方法是遵循标签和选择器。

您的 Pod 有一个标签部分,服务在选择器部分中使用它。您可以在services 的官方文档中找到一些示例。

您可以通过以下方式找到您的服务的选择器:

kubectl describe svc cass-operator-service
Run Code Online (Sandbox Code Playgroud)

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

kubectl get pods --show-labels
Run Code Online (Sandbox Code Playgroud)