Kubernetes 规格:选择器“存在”未找到pod
我有以下服务,我想从一个存在的标签中选择一个pod 但它不起作用,你知道为什么吗 注意:mypod:存在于以下内容中:Kubernetes 规格:选择器“存在”未找到pod,kubernetes,Kubernetes,我有以下服务,我想从一个存在的标签中选择一个pod 但它不起作用,你知道为什么吗 注意:mypod:存在于以下内容中: apiVersion: v1 kind: Service metadata: name: myservice labels: run: myservice spec: ports: - port: 8080 targetPort: 80 selector: mypod: exists type: LoadBalancer 我尝试
apiVersion: v1
kind: Service
metadata:
name: myservice
labels:
run: myservice
spec:
ports:
- port: 8080
targetPort: 80
selector:
mypod: exists
type: LoadBalancer
我尝试选择的播客列表为kubectl get pods-show labels:
我无法控制uuid,我知道只有一个pod——这就是我尝试使用exists的原因
还有,如果你知道,如果不止一个会发生什么
但最重要的是,为什么它找不到存在的pod?正如您从kubectl命令输出中看到的,带有密钥mypod的标签的值实际上是49c8b466-2fdd-4ea6-b799-bc60c259a8ec,并且不存在。我想你的CI/CD管道会覆盖这个?无论如何,像kubectl get po-l=mypod这样一个简单的只需键的查询应该可以工作。除了@Michael Hausenblas answer Kubernetes使用了两种类型的基于集合和基于等式 因为服务对象是旧的,并且是在基于集合的需求发布之前创建的,所以不能使用标签“myapp”存在这样的规则,而应该使用标签“myapp”=“abc”这样的相等规则 因此,如果您的CI/CD正在更改myapp label的值,您可以添加一些具有静态值的附加值,如appname:myapp,并在服务选择器中使用它。没有其他方法可以做到这一点
NAME READY STATUS RESTARTS AGE LABELS
mypod-5bf4c474c8-l6rr2 1/1 Running 0 32m mypod=49c8b466-2fdd-4ea6-b799-bc60c259a8ec