Приложение развертывания Kubernetes / спецификации сервиса и метка запуска - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь подключить развертывание k8s к развертыванию / службе (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 и не могу найти ответ.

Ответы [ 2 ]

2 голосов
/ 11 апреля 2020

На самом деле единственная разница между run и app заключается в имени, метки используются для идентификации объекта в Kubernetes, и вы можете дать имя, которое вам нравится, не обязательно app или run.

Вы, вероятно, можете найти много run в сети, потому что если вы создаете объект с помощью императивной команды, тег run будет автоматически размещен для вас.

Конечно, вы можете изменить это к паре ключ / значение, которая имеет для вас больший смысл.

Согласно документации k8s :

Метки предназначены для указания идентифицирующих атрибутов объекты, которые имеют смысл и имеют отношение к пользователям, но не подразумевают семантику для базовой системы.

Метки можно использовать для организации и выбора подмножеств объектов.

Метки могут быть прикреплены к объектам во время создания и впоследствии добавлены и изменены в любое время. Каждый объект может иметь набор меток ключ / значение.

Каждый ключ должен быть уникальным для данного объекта

1 голос
/ 11 апреля 2020

Метки - это произвольные пары ключ-значение. Особого значения app или run не существует. Вы можете выбрать любой ключ и значение для ваших меток. Однако следует помнить, что селектор службы должен иметь метку, совпадающую с той, которая была указана в качестве метки в развертывании, иначе она не будет работать .

Так что если у вас есть * Метка 1007 * в вашем развертывании имеет app: oracle-db в селекторе службы, а если у вас есть run: oracle-db метка в вашем развертывании, тогда run: oracle-db в селекторе службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...