anmoel.kubernetes
Ansible Rolle: Kubernetes
- Einführung
- Anforderungen
- Abhängigkeiten
- Variablen
- Beispiel-Playbooks
- Lizenz
- Mitwirkende
- Autoreninformationen
Einführung
Eine Ansible-Rolle, die Kubernetes auf Linux installiert.
Anforderungen
- Docker; empfohlene Rolle für die Docker-Installation:
geerlingguy.docker
. - Loadbalancer oder keepalived für HA; empfohlene Rolle für die keepalived-Installationen:
evrardjp.keepalived
.
Abhängigkeiten
- Python-Bibliothek Docker
Variablen
Allgemein
Name | Standard | Beschreibung |
---|---|---|
kubernetes_cluster_name | "kubernetes" | Name des Kubernetes-Clusters |
kubernetes_master_version | "v1.13.2" | Version der Kubernetes-Masterkomponenten |
kubernetes_version_rhel_package | '1.13.2' | nur Redhat, Version von kubectl, kubeadm, kubelet |
kubernetes_yum_arch | x86_64 | nur Redhat |
kubernetes_apt_repo_url | http://apt.kubernetes.io/ | nur Debian, Kubernetes-Repository |
kubernetes_apt_repo_pool | kubernetes-xenial | nur Debian, Repository-Pool |
kubernetes_useHyperKubeImage | "false" | Umschalter für die Verwendung des Hyperkube-Docker-Images |
kubernetes_dns_type | "CoreDNS" | DNS-Plugin in Kubernetes, kann "kube-dns" oder "CoreDNS" sein |
kubernetes_imageRepository | "k8s.gcr.io" | Docker-Registry für Kubernetes-Masterkomponenten |
kubernetes_config_dir | "/etc/kubernetes" | Konfigurationspfad |
kubernetes_certs_dir | "{{ kubernetes_config_dir }}/pki" | Zertifikatsordner |
kubernetes_pod_manifest_path | Absoluter Pfad, wo die statischen Pod-Manifestdateien gespeichert werden | "{{ kubernetes_config_dir }}/manifests" |
kubernetes_log_dir | "{{ kubernetes_log_dir }}/audit" | Protokollordner |
kubernetes_audit_log_dir | "/var/log/kubernetes/audit" | Audit-Protokollordner |
kubernetes_log_age | 2 | Maximales Alter der Protokolldateien |
kubernetes_authorization_mode | "Node,RBAC" | Autorisierungsmodus in Kubernetes |
kubernetes_enable_admission_plugins | "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" | Aktivierte Admission-Plugins in Kubernetes |
kubernetes_dns_domain | "cluster.local" | Interne DNS-Domäne im Kubernetes-Cluster |
kubernetes_pod_subnet | "10.244.0.0/16" | IPv4-Subnetz für Pods, muss eine CIDR sein |
kubernetes_service_subnet | "10.96.0.0/16" | IPv4-Subnetz für Services, muss eine CIDR sein |
kubernetes_kubelet_extra_args | "" | Zusätzliche Argumente für den Kubelet-Daemon |
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 }}' | Version von kubeadm |
API-Server
Name | Standard | Beschreibung |
---|---|---|
kubernetes_apiserver_dns | "" |
DNS-Name für den Kubernetes-API-Server |
kubernetes_apiserver_ip | - | Virtuelle IP des Kubernetes-API-Server-Loadbalancers |
kubernetes_apiserver_port | 6443 |
Port des Kubernetes-API-Servers |
kubernetes_apiserver_manifest_file | '{{ kubernetes_pod_manifest_path }}/kube-apiserver.yaml' |
Absoluter Pfad zur Manifestdatei |
Etcd
Name | Beschreibung | Standard |
---|---|---|
kubernetes_etcd_certs_dir | Pfad zum Speichern der Etcd-Zertifikate | '{{ kubernetes_certs_dir }}/etcd' |
kubernetes_etcd_ca_cert_file | Etcd Root CA-Zertifikatdatei | '{{ kubernetes_etcd_certs_dir }}/ca.crt' |
kubernetes_etcd_ca_key_file | Etcd Root CA-Schlüsseldatei | '{{ kubernetes_etcd_certs_dir }}/ca.key' |
kubernetes_etcd_server_cert_file | Etcd Server-Zertifikatdatei | '{{ kubernetes_etcd_certs_dir }}/server.crt' |
kubernetes_etcd_server_key_file | Etcd Server-Schlüsseldatei | '{{ 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 | Ordner für Etcd-Daten | /var/etcd |
kubernetes_etcd_server_port | Kommunikationsport des Etcd-Servers | 2380 |
kubernetes_etcd_client_port | Kommunikationsport des Etcd-Clients | 2379 |
Controller-Manager
Name | Beschreibung | Standard |
---|---|---|
kubernetes_controller_manager_manifest_file | Absoluter Pfad zur Manifestdatei | '{{ kubernetes_pod_manifest_path }}/kube-controller-manager.yaml' |
kubeadm
Name | Beschreibung | Standard |
---|---|---|
kubernetes_kubeadm_config_file_path | Pfad zum Speichern der kubeadm-Konfigurationsdatei | '{{ kubernetes_config_dir }}/kubeadm' |
kubernetes_kubeadm_config_file_name | Name der kubeadm-Konfigurationsdatei | clusterconfig.yaml |
Scheduler
Name | Beschreibung | Standard |
---|---|---|
kubernetes_scheduler_manifest_file | Absoluter Pfad zur Manifestdatei | '{{ kubernetes_pod_manifest_path }}/kube-scheduler.yaml' |
Cloud-Provider
Name | Beschreibung | Standard |
---|---|---|
kubernetes_cloud_provider | Wählen Sie unterstützten Cloud-Anbieter, Werte: "" oder "vsphere" | "" |
kubernetes_cloud_config_file | Pfad zur cloud_config-Datei | "{{ kubernetes_config_dir }}/{{ kubernetes_cloud_provider }}.conf" |
kubernetes_cloud_vsphere_workspace_server | Serveroption im Bereich [workspace] der cloud_config (nur vsphere) | "" |
kubernetes_cloud_vsphere_workspace_datacenter | Datacenter-Option im Bereich [workspace] der cloud_config (nur vsphere) | "" |
kubernetes_cloud_vsphere_workspace_default_datastore | Option default_datastore im Bereich [workspace] der cloud_config (nur vsphere) | "" |
kubernetes_cloud_vsphere_workspace_folder | Ordneroption im Bereich [workspace] der cloud_config (nur vsphere) | "" |
kubernetes_cloud_vsphere_default_user | Benutzeroption im Bereich [global] der cloud_config (nur vsphere) | "" |
kubernetes_cloud_vsphere_default_password | Passwortoption im Bereich [global] der cloud_config (nur vsphere) | "" |
kubernetes_cloud_vsphere_datacenters | Liste von Datacentern mit den Attributen: server, datacenters, username, password der cloud_config (nur vsphere) | [] |
kubernetes_cloud_vsphere_network_options | Alle Optionen im Bereich [network] der cloud_config (nur vsphere) | [] |
kubernetes_cloud_vsphere_disk_options | Alle Optionen im Bereich [disk] der cloud_config (nur vsphere) | [] |
Beispiel-Playbooks
Es gibt eine Vagrantfile, um alle Server für alle Szenarien zu erstellen: Vagrantfile servers.yml (benötigt für Vagrantfile)
All-in-One
Einzelner Master-Cluster
Getrennter etcd, einzelner Master-Cluster
HA-Master-Cluster
Getrennter etcd, HA-Master-Cluster
Lizenz
Apache 2.0
Mitwirkende
Autoreninformationen
Erstellt 2018 von André Möller
Über das Projekt
this role install an high available / non high available kubernetes cluster with kubeadm.
Installieren
ansible-galaxy install anmoel.kubernetes
Lizenz
apache-2.0
Downloads
3k
Besitzer