anmoel.kubernetes
Rôle Ansible : Kubernetes
- Introduction
- Exigences
- Dépendances
- Variables
- Exemples de Playbooks
- Licence
- Contributeurs
- Informations sur l'auteur
Introduction
Un rôle Ansible qui installe Kubernetes sur Linux.
Exigences
- Docker ; le rôle recommandé pour l'installation de Docker :
geerlingguy.docker
. - Loadbalancer ou keepalived pour HA ; le rôle recommandé pour les installations de keepalived :
evrardjp.keepalived
.
Dépendances
- Bibliothèque Python Docker
Variables
Communes
Nom | Par défaut | Description |
---|---|---|
kubernetes_cluster_name | "kubernetes" | nom du cluster Kubernetes |
kubernetes_master_version | "v1.13.2" | version des composants maîtres de Kubernetes |
kubernetes_version_rhel_package | '1.13.2' | uniquement pour Red Hat, version de kubectl, kubeadm, kubelet |
kubernetes_yum_arch | x86_64 | uniquement pour Red Hat |
kubernetes_apt_repo_url | http://apt.kubernetes.io/ | uniquement pour Debian, dépôt Kubernetes |
kubernetes_apt_repo_pool | kubernetes-xenial | uniquement pour Debian, pool de dépôt Kubernetes |
kubernetes_useHyperKubeImage | "false" | option pour changer l'image Docker du plan de contrôle en hyperkube |
kubernetes_dns_type | "CoreDNS" | plugin DNS dans Kubernetes, peut être : "kube-dns" ou "CoreDNS" |
kubernetes_imageRepository | "k8s.gcr.io" | registre Docker pour les composants maîtres de Kubernetes |
kubernetes_config_dir | "/etc/kubernetes" | chemin de configuration |
kubernetes_certs_dir | "{{ kubernetes_config_dir }}/pki" | dossier de certificats |
kubernetes_pod_manifest_path | Chemin absolu où les manifestes de pods statiques seront stockés | "{{ kubernetes_config_dir }}/manifests" |
kubernetes_log_dir | "{{ kubernetes_log_dir }}/audit" | dossier de logs |
kubernetes_audit_log_dir | "/var/log/kubernetes/audit" | dossier de logs de audit |
kubernetes_log_age | 2 | âge maximum des fichiers de log |
kubernetes_authorization_mode | "Node,RBAC" | mode d'autorisation Kubernetes |
kubernetes_enable_admission_plugins | "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" | plugins d'admission Kubernetes activés |
kubernetes_dns_domain | "cluster.local" | domaine DNS interne dans le cluster Kubernetes |
kubernetes_pod_subnet | "10.244.0.0/16" | sous-réseau IPv4 pour les pods, doit être un CIDR |
kubernetes_service_subnet | "10.96.0.0/16" | sous-réseau IPv4 pour les services, doit être un CIDR |
kubernetes_kubelet_extra_args | "" | arguments supplémentaires pour le démon 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 }}' | version de kubeadm |
Serveur API
Nom | Par défaut | Description |
---|---|---|
kubernetes_apiserver_dns | "" |
nom DNS pour le serveur API Kubernetes |
kubernetes_apiserver_ip | - | IP virtuelle du loadbalancer du serveur API Kubernetes |
kubernetes_apiserver_port | 6443 |
port du serveur API Kubernetes |
kubernetes_apiserver_manifest_file | '{{ kubernetes_pod_manifest_path }}/kube-apiserver.yaml' |
chemin absolu vers le fichier manifeste |
Etcd
Nom | Description | Par défaut |
---|---|---|
kubernetes_etcd_certs_dir | Chemin pour stocker les certificats Etcd | '{{ kubernetes_certs_dir }}/etcd' |
kubernetes_etcd_ca_cert_file | Fichier de certificat CA racine Etcd | '{{ kubernetes_etcd_certs_dir }}/ca.crt' |
kubernetes_etcd_ca_key_file | Fichier de clé CA racine Etcd | '{{ kubernetes_etcd_certs_dir }}/ca.key' |
kubernetes_etcd_server_cert_file | Fichier de certificat serveur Etcd | '{{ kubernetes_etcd_certs_dir }}/server.crt' |
kubernetes_etcd_server_key_file | Fichier de clé serveur 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 | dossier pour les données etcd | /var/etcd |
kubernetes_etcd_server_port | Port de communication du serveur Etcd | 2380 |
kubernetes_etcd_client_port | Port de communication du client Etcd | 2379 |
Gestionnaire de contrôleur
Nom | Description | Par défaut |
---|---|---|
kubernetes_controller_manager_manifest_file | Chemin absolu vers le fichier manifeste | '{{ kubernetes_pod_manifest_path }}/kube-controller-manager.yaml' |
kubeadm
Nom | Description | Par défaut |
---|---|---|
kubernetes_kubeadm_config_file_path | Chemin pour stocker le fichier de configuration kubeadm | '{{ kubernetes_config_dir }}/kubeadm' |
kubernetes_kubeadm_config_file_name | Nom du fichier de configuration kubeadm | clusterconfig.yaml |
Planificateur
Nom | Description | Par défaut |
---|---|---|
kubernetes_scheduler_manifest_file | Chemin absolu vers le fichier manifeste | '{{ kubernetes_pod_manifest_path }}/kube-scheduler.yaml' |
Fournisseur Cloud
Nom | Description | Par défaut |
---|---|---|
kubernetes_cloud_provider | choisir le fournisseur cloud pris en charge, valeurs : "" ou "vsphere" | "" |
kubernetes_cloud_config_file | chemin pour le fichier cloud_config | "{{ kubernetes_config_dir }}/{{ kubernetes_cloud_provider }}.conf" |
kubernetes_cloud_vsphere_workspace_server | option serveur dans la zone [workspace] du cloud_config (uniquement vsphere) | "" |
kubernetes_cloud_vsphere_workspace_datacenter | option centre de données dans la zone [workspace] du cloud_config (uniquement vsphere) | "" |
kubernetes_cloud_vsphere_workspace_default_datastore | option default_datastore dans la zone [workspace] du cloud_config (uniquement vsphere) | "" |
kubernetes_cloud_vsphere_workspace_folder | option dossier dans la zone [workspace] du cloud_config (uniquement vsphere) | "" |
kubernetes_cloud_vsphere_default_user | option utilisateur dans la zone [global] du cloud_config (uniquement vsphere) | "" |
kubernetes_cloud_vsphere_default_password | option mot de passe dans la zone [global] du cloud_config (uniquement vsphere) | "" |
kubernetes_cloud_vsphere_datacenters | liste des centres de données avec les attributs : serveur, centres de données, nom d'utilisateur, mot de passe du cloud_config (uniquement vsphere) | [] |
kubernetes_cloud_vsphere_network_options | toutes les options dans la zone [network] du cloud_config (uniquement vsphere) | [] |
kubernetes_cloud_vsphere_disk_options | toutes les options dans la zone [disk] du cloud_config (uniquement vsphere) | [] |
Exemples de Playbooks
Il y a un Vagrantfile pour créer tous les serveurs pour tous les scénarios :
Vagrantfile
servers.yml (nécessaire pour Vagrantfile)
Tout-en-Un
Cluster à un seul maître
etcd séparé, cluster à un seul maître
Cluster maître HA
etcd séparé, cluster maître HA
Licence
Apache 2.0
Contributeurs
Informations sur l'auteur
créé en 2018 par André Möller
À propos du projet
this role install an high available / non high available kubernetes cluster with kubeadm.
Installer
ansible-galaxy install anmoel.kubernetes
Licence
apache-2.0
Téléchargements
3k
Propriétaire