我已经创建了一个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。有可能这样做吗?
发布于 2020-06-30 16:54:05
最好的方法是跟随标签和选择器
您的pod有一个标签部分,服务在选择器部分中使用它,下面是一些示例:
https://kubernetes.io/docs/concepts/services-networking/service/
您可以使用以下命令找到服务的选择器:
kubectl describe svc cass-operator-service您可以使用以下命令列出标签:
kubectl get pods --show-labels发布于 2020-06-30 16:14:57
您可以通过选择器查询获取实例,如下所示
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=%https://stackoverflow.com/questions/62652525
复制相似问题