anmoel.kubernetes
Rola Ansible: Kubernetes
- Wprowadzenie
- Wymagania
- Zależności
- Zmienne
- Przykłady playbooków
- Licencja
- Współtwórcy
- Informacje o autorze
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
Jednolity klaster Master
Oddzielny etcd, jednorazowy klaster Master
Klaster Master HA
Oddzielny etcd, klaster Master HA
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