Создать Daemonset с помощью kubectl? - PullRequest
0 голосов
/ 04 сентября 2018

Я сдал экзамен CKA, и мне нужно было довольно долго работать с Daemonsets. Поскольку с kubectl гораздо быстрее делать все, а не создавать манифесты yaml для ресурсов k8s, мне было интересно, возможно ли создать ресурсы Daemonset, используя kubectl.

Я знаю, что пока невозможно создать его, используя обычный kubectl create daemonset, по крайней мере. И нет описания этого в документации. Но, может быть, есть способ сделать это по-другому?

Лучшее, что я могу сделать сейчас, - это сначала создать Deployment, как kubectl create deployment, и отредактировать его выходной манифест. Есть варианты?

Ответы [ 4 ]

0 голосов
/ 12 мая 2019

Самый быстрый способ взломать - создать файл развертывания, используя

kubectl create deploy nginx --image=nginx --dry-run -o yaml > nginx-ds.yaml

Теперь замените строку kind: Deployment на kind: DaemonSet в nginx-ds.yaml и удалите строку replicas: 1

Однако следующая команда выдаст чистый манифест демона, учитывая, что "apps / v1" - это API, используемый для DaemonSet в вашем кластере

kubectl create deploy nginx --image=nginx --dry-run -o yaml | \
    sed '/null\|{}\|replicas/d;/status/,$d;s/Deployment/DaemonSet/g' > nginx-ds.yaml

У вас есть nginx DaemonSet.

0 голосов
/ 15 октября 2018

CKA позволяет получить доступ к документации K8S . Таким образом, должна быть возможность получить образец YAML для различных ресурсов оттуда. Здесь - это документация для Daemonset из K8S.

Кроме того, не уверен, имеет ли среда сертификации доступ к ресурсам в пространстве имен системы kube. Если да, используйте приведенную ниже команду, чтобы получить пример yaml для Daemonset.

kubectl get daemonsets kube-flannel-ds-amd64 -o yaml -n = kube-system> daemonset.yaml

0 голосов
/ 17 октября 2018

Это невозможно. По крайней мере, для Kubernetes 1.12. Единственный вариант - получить образец yaml-файла Daemonset и перейти оттуда.

0 голосов
/ 04 сентября 2018

Нет такой опции для создания DaemonSet с использованием kubectl. Но, тем не менее, вы можете подготовить файл Yaml с базовой конфигурацией для DaemonSet, например, daemon-set-basic.yaml и создайте его, используя kubectl create -f daemon-set-basic.yaml

Вы можете редактировать новый DaemonSet, используя kubectl edit daemonset <name-of-the-daemon-set>. Или измените файл Yaml и примените изменения на kubectl apply -f daemon-set-basic.yaml. Обратите внимание, что если вы хотите обновить файл изменения конфигурации и использовать команду apply, лучше использовать apply вместо create при создании DaemonSet.

Вот пример простого DaemonSet:

kind: DaemonSet
metadata:
  name: fluentd-elasticsearch
  labels:
    k8s-app: fluentd-logging
spec:
  selector:
    matchLabels:
      name: fluentd-elasticsearch
  template:
    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      containers:
      - name: fluentd-elasticsearch
        image: k8s.gcr.io/fluentd-elasticsearch:1.20
...