Kubernetes部署/服务规范应用程序与运行标签
我正在尝试将k8s部署连接到(Oracle DB)部署/服务。以下是我的DB部署和服务:Kubernetes部署/服务规范应用程序与运行标签,kubernetes,Kubernetes,我正在尝试将k8s部署连接到(Oracle DB)部署/服务。以下是我的DB部署和服务: apiVersion: v1 kind: Service metadata: name: oracle-db labels: app: oracle-db spec: ports: - name: oracle-db port: 1521 protocol: TCP targetPort: 1521 selector: app: oracle-db
apiVersion: v1
kind: Service
metadata:
name: oracle-db
labels:
app: oracle-db
spec:
ports:
- name: oracle-db
port: 1521
protocol: TCP
targetPort: 1521
selector:
app: oracle-db
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: oracle-db-depl
labels:
app: oracle-db
spec:
selector:
matchLabels:
app: oracle-db
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: oracle-db
spec:
containers:
- name: oracle-db
image: oracledb:latest
imagePullPolicy: Always
ports:
- containerPort: 1521
env:
...
在标签部分,我想知道指定“run”和“app”(我都见过)之间的区别到底是什么。我浏览了k8s文档,没有找到答案。实际上
run
和app
之间的唯一区别是名称,标签用于在Kubernetes中识别对象,您可以给出您喜欢的名称,而不一定是app或run
您可能会在网上找到很多run
,因为如果您通过命令命令创建对象,标签run
将自动为您放置
当然,您可以将其更改为对您更有意义的键/值对
根据k8s:
标签用于指定对用户有意义和相关的对象的标识属性,但不直接暗示核心系统的语义
标签可用于组织和选择对象的子集
标签可以在创建时附着到对象,随后可以随时添加和修改。每个对象都可以定义一组键/值标签
对于给定对象,每个键都必须是唯一的
标签是任意的键值对。
app
或run
没有特殊含义。可以为标签选择任何键和值。但是需要记住的一点是,服务的选择器需要有一个与部署中指定为标签的标签相匹配的标签,否则它将无法工作
因此,如果部署中有app:oracle db
标签,则在服务选择器中有app:oracle db
,如果部署中有run:oracle db
标签,则在服务选择器中有run:oracle db