Рубрики
Uncategorized

CKAD — Revision — дизайн капсула

Метки, селекторы и аннотации метки Метки — это пары ключей/значения, которые в … Tagged с Kubernetes, DevOps, Linux, Docker.

CKAD Revision (6 серии деталей)

Ярлыки

Метки — это пары ключей/значения, которые прикреплены к объектам, таким как стручки. Метки позволяют выполнять эффективные запросы и часы и идеально подходят для использования в UIS и CLI. Неидентификационная информация должна быть записана с использованием аннотации .

Вот пример того, как создать стручок с помощью kubectl и добавьте к нему этикетку

kubectl run test_pod --image=nginx --restart=Never --labels="country=united_kingdom" --dry-run -o yaml'

что приводит к следующему Yaml файл

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    country: united_kingdom
  name: test_pod
spec:
  containers:
  - image: nginx
    name: test_pod
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Never
status: {}

Селекторы

В отличие от имен и UID, этикетки не обеспечивают уникальности. В целом, мы ожидаем, что многие объекты будут нести ту же этикетку (ы).

Через селектор метки клиент/пользователь может идентифицировать набор объектов. Селектор метки является основной группировкой примитива в Kubernetes.

Вот пример Nodeselector который выбирает узлы с меткой Accelerator = nvidia-tesla-p100 :

apiVersion: v1
kind: Pod
metadata:
  name: cuda-test
spec:
  containers:
    - name: cuda-test
      image: "k8s.gcr.io/cuda-vector-add:v0.1"
      resources:
        limits:
          nvidia.com/gpu: 1
  nodeSelector:
    accelerator: nvidia-tesla-p100

Аннотации

Вы можете использовать аннотации Kubernetes, чтобы прикрепить произвольные неяменитые метаданные к объектам. Клиенты, такие как инструменты и библиотеки, могут получить эти метаданные.

Например, вот файл конфигурации для POD, который имеет аннотацию Imageregistry: https://hub.docker.com/ :

apiVersion: v1
kind: Pod
metadata:
  name: annotations-demo
  annotations:
    imageregistry: "https://hub.docker.com/"
spec:
  containers:
  - name: nginx
    image: nginx:1.7.9
    ports:
    - containerPort: 80

Развертывание предоставляет декларативные обновления для стручков и репликатов. Вы описываете желаемое состояние и контроллер развертывания меняет Фактическое состояние к желаемое состояние с контролируемой скоростью.

Чтобы создать развертывание, которое вы можете запустить:

kubectl create deployment my-dep --image=busybox

или создать с помощью файла с помощью kubectl create -f

Ниже приведено полученное Ямл :

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: test
  name: test
spec:
  replicas: 1
  selector:
    matchLabels: <----- defines how the Deployment finds which Pods to manage
      app: test
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: test
    spec:
      containers:
      - image: nginx
        name: nginx
        resources: {}
status: {}

Обновления

Мы можем сделать обновление развертывания, используя Kubectl Set развертывание изображения/nginx-развертка: 1.9.1-Рекордублект Команда, которая приводит к следующему выводу: Развертывание.

Другой способ — запустить kubectl edit развертывание и обновить изображение вручную.

Как только команда обновления выпущена, мы можем отслеживать, используя Развертывание статуса развертывания kubectl/

Мы можем проверить статус развертывания с помощью kubectl uplout unployment/ или проверьте историю, используя Kubectl История развертывания истории/ Анкет

Откаты

Мы можем отказаться от развертывания, используя kubectl unwort undo развертывание/

Работа создает один или несколько стручков и гарантирует, что указанное число из них успешно прекратилось.

Мы можем создать работу, используя kubectl Создать работу myjob -dry -run -o yaml -/bin/sh -c 'echo hello; Sleep 100;' что приводит к созданию следующей работы:

apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: myjob
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      containers:
      - command:
        - /bin/sh
        - -c
        - echo hello;sleep 100;
        image: nginx
        name: myjob
        resources: {}
      restartPolicy: Never
status: {}

После создания мы можем использовать kubectl опишите работу myjob и делать Kubectl Get Pods Чтобы получить список бегущих стручков для этой работы.

# Cronjob

Работа Cron создает расписание на основе времени.

CKAD Revision (6 серии деталей)

Оригинал: «https://dev.to/boncheff/ckad-revision-pod-design-5dc7»