Есть ли у kubernetes API, который может создавать несколько видов ресурсов одновременно - PullRequest
0 голосов
/ 06 июля 2018

Теперь у меня есть ситуация, когда у меня есть те же файлы yaml, каждый из которых содержит такие вещи, как развертывание, обслуживание, вход и т. Д. Я должен создать их одновременно, я связал их с доступным, если не получилось, поэтому я хочу знать, если у kubernetes есть конечная точка API , может опубликовать в ней файл yaml и создать ресурсы, аналогичные действиям команды kubectl create -f sample.yaml. Если хотите, вы также можете дать мне другой совет для достижения моей цели.

1 Ответ

0 голосов
/ 06 июля 2018

Я также могу принять, если есть способ опубликовать мой файл yaml в kubernetes api и создать все ресурсы в нем

Затем вы можете просто объединить все отдельные файлы yaml в один большой файл yaml, но каждый из них будет разделен на --- между ними.

Например, чтобы установить kubernetes-dashboard, вы просто используете: kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml, проверка этого файла yaml выявляет необходимую вам структуру (отрывок ниже):

...

# ------------------- Dashboard Secret ------------------- #

apiVersion: v1
kind: Secret
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard-certs
  namespace: kube-system
type: Opaque

---
# ------------------- Dashboard Service Account ------------------- #

apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system

---
# ------------------- Dashboard Role & Role Binding ------------------- #

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: kubernetes-dashboard-minimal

...

где каждый блок между комментариями может быть отдельным файлом yaml. Обратите внимание, что комментарии являются необязательными, а разделитель между содержимым отдельных файлов yaml - ---.

Только некоторые sidenotes:

  • хотя это несколько практично для конечных развертываний, если вы склеиваете все свои отдельные файлы yaml в такой файл mega-all-in-one.yaml, то все, что вы делаете с ним - (создайте / обновите / примените / удалите. ..) Вы делаете для всех ресурсов, перечисленных внутри.
  • Если это не «общий» файл для запуска с какого-либо сетевого ресурса, тогда может быть проще использовать --recursive переключиться на kubectl, как описано в официальной документации , и запускать для папки, содержащей все отдельные файлы yaml. Таким образом, вы сохраняете возможность индивидуально выбрать любой файл yaml и можете развернуть / удалить / применить ... все сразу, если вы выберете это ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...