kubernetes

Ansible Роль: Kubernetes

статус пайплайна отчет по покрытиям

Введение

Ansible роль, которая устанавливает Kubernetes на Linux.

Требования

  • Docker; рекомендуется использовать роль для установки Docker: geerlingguy.docker.
  • Балансировщик нагрузки или keepalived для HA; рекомендуется использовать роль для установки keepalived: evrardjp.keepalived.

Зависимости

  • Библиотека Python Docker

Переменные

Общие

Имя По умолчанию Описание
kubernetes_cluster_name "kubernetes" имя кластера Kubernetes
kubernetes_master_version "v1.13.2" версия компонентов модуля Kubernetes
kubernetes_version_rhel_package '1.13.2' только для RedHat, версия kubectl, kubeadm, kubelet
kubernetes_yum_arch x86_64 только для RedHat
kubernetes_apt_repo_url http://apt.kubernetes.io/ только для Debian, репозиторий Kubernetes
kubernetes_apt_repo_pool kubernetes-xenial только для Debian, пул репозитория Kubernetes
kubernetes_useHyperKubeImage "false" переключатель для изменения образа Docker контроллера на hyperkube
kubernetes_dns_type "CoreDNS" DNS плагин в Kubernetes, может быть: "kube-dns" или "CoreDNS"
kubernetes_imageRepository "k8s.gcr.io" Docker реестр для компонентов модуля Kubernetes
kubernetes_config_dir "/etc/kubernetes" Путь к конфигурации
kubernetes_certs_dir "{{ kubernetes_config_dir }}/pki" папка сертификатов
kubernetes_pod_manifest_path Абсолютный путь, где будут храниться статические манифесты подов "{{ kubernetes_config_dir }}/manifests"
kubernetes_log_dir "{{ kubernetes_log_dir }}/audit" папка журналов
kubernetes_audit_log_dir "/var/log/kubernetes/audit" папка аудиторских журналов
kubernetes_log_age 2 максимальный срок хранения файлов журналов
kubernetes_authorization_mode "Node,RBAC" режим авторизации Kubernetes
kubernetes_enable_admission_plugins "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" разрешенные плагины доступа в Kubernetes
kubernetes_dns_domain "cluster.local" внутренний DNS домен в кластере Kubernetes
kubernetes_pod_subnet "10.244.0.0/16" ipv4 подсеть для подов, должна быть в формате cidr
kubernetes_service_subnet "10.96.0.0/16" ipv4 подсеть для сервисов, должна быть в формате cidr
kubernetes_kubelet_extra_args "" дополнительные аргументы для демона kubelet
kubernetes_packages false - name: kubelet
state: present
- name: kubectl
state: present
- name: kubeadm
state: present
- name: kubernetes-cni
state: present
kubernetes_version_kubeadm 'stable-{{ kubernetes_version }}' версия kubeadm

API сервер

Имя По умолчанию Описание
kubernetes_apiserver_dns "" DNS-имя для API сервера Kubernetes
kubernetes_apiserver_ip - виртуальный IP адрес балансировщика нагрузки API сервера Kubernetes
kubernetes_apiserver_port 6443 порт API сервера Kubernetes
kubernetes_apiserver_manifest_file '{{ kubernetes_pod_manifest_path }}/kube-apiserver.yaml' Абсолютный путь к файлу манифеста

Etcd

Имя Описание По умолчанию
kubernetes_etcd_certs_dir Путь для хранения сертификатов Etcd '{{ kubernetes_certs_dir }}/etcd'
kubernetes_etcd_ca_cert_file Файл сертификата корневого CA Etcd '{{ kubernetes_etcd_certs_dir }}/ca.crt'
kubernetes_etcd_ca_key_file Файл ключа корневого CA Etcd '{{ kubernetes_etcd_certs_dir }}/ca.key'
kubernetes_etcd_server_cert_file Файл сертификата сервера Etcd '{{ kubernetes_etcd_certs_dir }}/server.crt'
kubernetes_etcd_server_key_file Файл ключа сервера Etcd '{{ kubernetes_etcd_certs_dir }}/server.key'
kubernetes_etcd_peer_cert_file '{{ kubernetes_etcd_certs_dir }}/peer.crt'
kubernetes_etcd_peer_key_file '{{ kubernetes_etcd_certs_dir }}/peer.key'
kubernetes_etcd_healthcheck_client_cert_file '{{ kubernetes_etcd_certs_dir }}/healthcheck-client.crt'
kubernetes_etcd_healthcheck_client_key_file '{{ kubernetes_etcd_certs_dir }}/healthcheck-client.key'
kubernetes_etcd_apiserver_client_cert_file '{{ kubernetes_certs_dir }}/apiserver-etcd-client.crt'
kubernetes_etcd_apiserver_client_key_file '{{ kubernetes_certs_dir }}/apiserver-etcd-client.key'
kubernetes_etcd_manifest_file '{{ kubernetes_pod_manifest_path }}/etcd.yaml'
kubernetes_etcd_data_dir папка для данных etcd /var/etcd
kubernetes_etcd_server_port Порт связи сервера Etcd 2380
kubernetes_etcd_client_port Порт связи клиента Etcd 2379

Менеджер контроллеров

Имя Описание По умолчанию
kubernetes_controller_manager_manifest_file Абсолютный путь к файлу манифеста '{{ kubernetes_pod_manifest_path }}/kube-controller-manager.yaml'

kubeadm

Имя Описание По умолчанию
kubernetes_kubeadm_config_file_path Путь для хранения файла конфигурации kubeadm '{{ kubernetes_config_dir }}/kubeadm'
kubernetes_kubeadm_config_file_name Имя файла конфигурации kubeadm clusterconfig.yaml

Планировщик

Имя Описание По умолчанию
kubernetes_scheduler_manifest_file Абсолютный путь к файлу манифеста '{{ kubernetes_pod_manifest_path }}/kube-scheduler.yaml'

Облачный провайдер

Имя Описание По умолчанию
kubernetes_cloud_provider выберите поддерживаемый облачный провайдер, значения: "" или "vsphere" ""
kubernetes_cloud_config_file путь к файлу cloud_config "{{ kubernetes_config_dir }}/{{ kubernetes_cloud_provider }}.conf"
kubernetes_cloud_vsphere_workspace_server параметр сервер в разделе [workspace] файла cloud_config (только vsphere) ""
kubernetes_cloud_vsphere_workspace_datacenter параметр датацентр в разделе [workspace] файла cloud_config (только vsphere) ""
kubernetes_cloud_vsphere_workspace_default_datastore параметр default_datastore в разделе [workspace] файла cloud_config (только vsphere) ""
kubernetes_cloud_vsphere_workspace_folder параметр папки в разделе [workspace] файла cloud_config (только vsphere) ""
kubernetes_cloud_vsphere_default_user параметр пользователя в разделе [global] файла cloud_config (только vsphere) ""
kubernetes_cloud_vsphere_default_password параметр пароля в разделе [global] файла cloud_config (только vsphere) ""
kubernetes_cloud_vsphere_datacenters список датацентров с атрибутами: сервер, датацентры, имя пользователя, пароль файла cloud_config (только vsphere) []
kubernetes_cloud_vsphere_network_options все параметры в разделе [network] файла cloud_config (только vsphere) []
kubernetes_cloud_vsphere_disk_options все параметры в разделе [disk] файла cloud_config (только vsphere) []

Примеры плейбуков

Имеется файл Vagrantfile для создания всех серверов для всех сценариев: Vagrantfile servers.yml (необходимый для Vagrantfile)

Все в одном

inventory

site.yml

Один мастер-кластер

inventory

site.yml

Отдельный etcd, один мастер-кластер

inventory

site.yml

HA-мастер-кластер

inventory

site.yml

Отдельный etcd, HA мастер-кластер

inventory

site.yml

Лицензия

Apache 2.0

Участники

Информация об авторе

создан в 2018 году André Möller

О проекте

this role install an high available / non high available kubernetes cluster with kubeadm.

Установить
ansible-galaxy install anmoel/ansible-role-kubernetes
Лицензия
apache-2.0
Загрузки
2966
Владелец