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)
Все в одном
Один мастер-кластер
Отдельный etcd, один мастер-кластер
HA-мастер-кластер
Отдельный etcd, HA мастер-кластер
Лицензия
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
Владелец