anmoel.kubernetes

Rola Ansible: Kubernetes

status potoku raport pokrycia

Wprowadzenie

Rola Ansible, która instaluje Kubernetes na systemie Linux.

Wymagania

  • Docker; zalecana rola do instalacji Dockera: geerlingguy.docker.
  • Loadbalancer lub keepalived dla HA; zalecana rola do instalacji keepalived: evrardjp.keepalived.

Zależności

  • Biblioteka Pythona Docker.

Zmienne

Ogólne

Nazwa Domyślna wartość Opis
kubernetes_cluster_name "kubernetes" nazwa klastra kubernetes
kubernetes_master_version "v1.13.2" wersja komponentów master kubernetes
kubernetes_version_rhel_package '1.13.2' tylko redhat, wersja kubectl, kubeadm, kubelet
kubernetes_yum_arch x86_64 tylko redhat
kubernetes_apt_repo_url http://apt.kubernetes.io/ tylko debian, repozytorium kubernetes
kubernetes_apt_repo_pool kubernetes-xenial tylko debian, pulę repozytoriów kubernetes
kubernetes_useHyperKubeImage "false" przełącznik pozwalający zmienić obraz dockera kontrolującego na hyperkube
kubernetes_dns_type "CoreDNS" wtyczka dns w kubernetes, może być: "kube-dns" lub "CoreDNS"
kubernetes_imageRepository "k8s.gcr.io" rejestr docker dla komponentów master kubernetes
kubernetes_config_dir "/etc/kubernetes" ścieżka konfiguracyjna
kubernetes_certs_dir "{{ kubernetes_config_dir }}/pki" folder certyfikatów
kubernetes_pod_manifest_path Absolutna ścieżka, w której będą przechowywane manifesty statycznych podów "{{ kubernetes_config_dir }}/manifests"
kubernetes_log_dir "{{ kubernetes_log_dir }}/audit" folder logów
kubernetes_audit_log_dir "/var/log/kubernetes/audit" folder logów audytowych
kubernetes_log_age 2 maksymalny wiek plików dziennika
kubernetes_authorization_mode "Node,RBAC" tryb autoryzacji kubernetes
kubernetes_enable_admission_plugins "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" włączone wtyczki przyjmowania kubernetes
kubernetes_dns_domain "cluster.local" wewnętrzna domena dns w klastrze kubernetes
kubernetes_pod_subnet "10.244.0.0/16" podsieć ipv4 dla podów, musi być w formacie cidr
kubernetes_service_subnet "10.96.0.0/16" podsieć ipv4 dla serwisów, musi być w formacie cidr
kubernetes_kubelet_extra_args "" dodatkowe argumenty dla demona 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 }}' wersja kubeadm

Serwer API

Nazwa Domyślna wartość Opis
kubernetes_apiserver_dns "" nazwa dns dla serwera api kubernetes
kubernetes_apiserver_ip - wirtualny adres ip loadbalancera serwera api kubernetes
kubernetes_apiserver_port 6443 port serwera api kubernetes
kubernetes_apiserver_manifest_file '{{ kubernetes_pod_manifest_path }}/kube-apiserver.yaml' Absolutna ścieżka do pliku manifestu

Etcd

Nazwa Opis Domyślna wartość
kubernetes_etcd_certs_dir Ścieżka do przechowywania certyfikatów Etcd '{{ kubernetes_certs_dir }}/etcd'
kubernetes_etcd_ca_cert_file Plik certyfikatu root CA Etcd '{{ kubernetes_etcd_certs_dir }}/ca.crt'
kubernetes_etcd_ca_key_file Plik klucza root CA Etcd '{{ kubernetes_etcd_certs_dir }}/ca.key'
kubernetes_etcd_server_cert_file Plik certyfikatu serwera Etcd '{{ kubernetes_etcd_certs_dir }}/server.crt'
kubernetes_etcd_server_key_file Plik klucza serwera 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 folder dla danych etcd /var/etcd
kubernetes_etcd_server_port Port komunikacji serwera etcd 2380
kubernetes_etcd_client_port Port komunikacji klienta etcd 2379

Kontroler

Nazwa Opis Domyślna wartość
kubernetes_controller_manager_manifest_file Absolutna ścieżka do pliku manifestu '{{ kubernetes_pod_manifest_path }}/kube-controller-manager.yaml'

kubeadm

Nazwa Opis Domyślna wartość
kubernetes_kubeadm_config_file_path Ścieżka do przechowywania pliku konfiguracyjnego kubeadm '{{ kubernetes_config_dir }}/kubeadm'
kubernetes_kubeadm_config_file_name Nazwa pliku konfiguracyjnego kubeadm clusterconfig.yaml

Planista

Nazwa Opis Domyślna wartość
kubernetes_scheduler_manifest_file Absolutna ścieżka do pliku manifestu '{{ kubernetes_pod_manifest_path }}/kube-scheduler.yaml'

Dostawca chmury

Nazwa Opis Domyślna wartość
kubernetes_cloud_provider wybierz obsługiwany dostawcę chmury, wartości: "" lub "vsphere" ""
kubernetes_cloud_config_file ścieżka do pliku cloud_config "{{ kubernetes_config_dir }}/{{ kubernetes_cloud_provider }}.conf"
kubernetes_cloud_vsphere_workspace_server opcja serwera w obszarze [workspace] pliku cloud_config (tylko vsphere) ""
kubernetes_cloud_vsphere_workspace_datacenter opcja datacenter w obszarze [workspace] pliku cloud_config (tylko vsphere) ""
kubernetes_cloud_vsphere_workspace_default_datastore opcja default_datastore w obszarze [workspace] pliku cloud_config (tylko vsphere) ""
kubernetes_cloud_vsphere_workspace_folder opcja folderu w obszarze [workspace] pliku cloud_config (tylko vsphere) ""
kubernetes_cloud_vsphere_default_user opcja użytkownika w obszarze [global] pliku cloud_config (tylko vsphere) ""
kubernetes_cloud_vsphere_default_password opcja hasła w obszarze [global] pliku cloud_config (tylko vsphere) ""
kubernetes_cloud_vsphere_datacenters lista datacenter z atrybutami: serwer, datacenters, użytkownik, hasło pliku cloud_config (tylko vsphere) []
kubernetes_cloud_vsphere_network_options wszystkie opcje w obszarze [network] pliku cloud_config (tylko vsphere) []
kubernetes_cloud_vsphere_disk_options wszystkie opcje w obszarze [disk] pliku cloud_config (tylko vsphere) []

Przykłady playbooków

Jest plik Vagrantfile do stworzenia wszystkich serwerów dla wszystkich scenariuszy: Vagrantfile servers.yml (potrzebny dla Vagrantfile)

AllinOne

inventory

site.yml

Jednolity klaster Master

inventory

site.yml

Oddzielny etcd, jednorazowy klaster Master

inventory

site.yml

Klaster Master HA

inventory

site.yml

Oddzielny etcd, klaster Master HA

inventory

site.yml

Licencja

Apache 2.0

Współtwórcy

Informacje o autorze

stworzone w 2018 roku przez André Möller

O projekcie

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

Zainstaluj
ansible-galaxy install anmoel.kubernetes
Licencja
apache-2.0
Pobrania
3k
Właściciel