Инфраструктура Kubernetes как лучшая практика кода - PullRequest
0 голосов
/ 04 марта 2020

Может ли кто-нибудь указать мне на общую стратегию настройки кластера Kubernetes в соответствии с принципами инфраструктуры как кода и автоматического c развертывания для различных групп разработчиков с Git репозитории и неопределенная платформа CI / CD.

Допустим, я собираюсь использовать Terraform для развертывания кластера Kubernetes в гипотетическом облачном сервисе с именем QKS с обычно используемым сервисом, например Apache Airflow, для которого доступна таблица рулевого управления c. Существует два пользовательских сервиса (из двух независимых групп разработчиков) для развертывания с именами «яблоки» и «бананы».

Я борюсь с разделением обязанностей между различными базами кода. Какие шаги в этом процессе лучше всего сделать вручную? Об этой технологии много пишут, но я не могу найти ни одной статьи по этому вопросу, в частности.

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Для этого существует интересный проект kubernetes, который называется cluster-api , который позволяет создавать, настраивать и управлять кластерами kubernetes декларативным способом, аналогичным тому, как мы управляем различными ресурсы в кубернетесь сама. Он определяет новые ресурсы различных типов, такие как Cluster , Machine

Например, вы можете определить кластер следующим образом:

apiVersion: cluster.x-k8s.io/v1alpha2
kind: Cluster
metadata:
  name: capi-quickstart
spec:
  clusterNetwork:
    pods:
      cidrBlocks: ["192.168.0.0/16"]
  infrastructureRef:
    apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2
    kind: AWSCluster
    name: capi-quickstart

Конечно, вы потребуется стартовый кластер / bootstrap kubernetes, где вы будете развертывать этот ресурс Этот проект все еще находится в стадии создания прототипа, поэтому будьте осторожны.

Посмотрите репозиторий cluster-api на Github: https://github.com/kubernetes-sigs/cluster-api

1 голос
/ 04 марта 2020

Это мое собственное предложение.

Имеет три git репозитория:

  • my -structure : включает файлы Terraform, развертывание Airflow Helm и развертывание двух пространств имен включало роли доступа к этим пространствам имен. CICD отслеживает изменения и развертывает их на QKS
  • яблок : кодовая база и соответствующий шаблон руля. CICD может развертываться только в пространстве имён яблок.
  • bananas : база кода и соответствующий шаблон руля. CICD может развертываться только в пространстве имен бананов. enter image description here

Примечания:

...