Kubernetes 此k8s yaml中的哪些名称应相同
这是一个来自kubenetes网站的yaml示例,有这么多我的应用程序,它们都必须相同吗?他们的目的是什么?就个人而言,我认为这有助于检查POD分组信息Kubernetes 此k8s yaml中的哪些名称应相同,kubernetes,Kubernetes,这是一个来自kubenetes网站的yaml示例,有这么多我的应用程序,它们都必须相同吗?他们的目的是什么?就个人而言,我认为这有助于检查POD分组信息 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: my-app labels: run: my-app spec: replicas: 3 selector: matchLabels: run: my-app templ
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-app
labels:
run: my-app
spec:
replicas: 3
selector:
matchLabels:
run: my-app
template:
metadata:
labels:
run: my-app
spec:
containers:
- image: gcr.io/google-samples/hello-app:1.0
name: my-app
ports:
- containerPort: 8080
这是一个来自kubenetes网站的yaml示例,有这么多我的应用程序,它们都必须相同吗?他们的目的是什么
不,就名称字段而言,它们不必相同,也可以不同。在元数据和选择器部分中可以看到my app引用
可用于将不同的Kubernetes对象粘合在一起,或在查询Kubernetes时仅选择对象的子集。它们有时是一样的
根据您创建展开的方式,您可能在整个展开过程中以及从中派生的对象中运行:myapp。使用kubectl run my app-image=gcr.io/google samples/hello app:1.0-replicas=3将创建与您所指的相同的部署
下面的图片展示了如何使用不同的run:my app标签,以上面的部署为灵感:
上图向您展示了部署以及如何使用蓝色模板框创建指定数量的副本。每个Pod将在其元数据部分中获得run:my app标签,从部署的角度来看,这将用作选择其负责的Pod的一种方式
使用kubectl的豆荚子集的类似选择为:
kubectl get pods-l run=我的应用程序
这将为您提供所有标有run:my app的播客
总而言之,当使用kubectl或其他Kubernetes资源进行选择时,可以使用标签来选择资源的子集。您可以创建自己的标签,在整个特定部署过程中,标签不一定必须相同,但如果它们相同,则可以很容易地查询具有特定标签的任何资源
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: my-app <--- Deployment object name, you can change it.
labels:
run: my-app <--- It is helpful for the management, e.g.> Deleting same label one
spec:
replicas: 3
selector:
matchLabels:
run: my-app <--- What labels are controlled over by this deployment object.
template:
metadata:
labels:
run: my-app <--- Yeah, it's pod's label. It can be used of grouping with other objects
spec:
containers:
- image: gcr.io/google-samples/hello-app:1.0
name: my-app
ports: