anmoel.kubernetes
Ansible Role: Kubernetes
- Introducción
- Requisitos
- Dependencias
- Variables
- Ejemplos de Playbooks
- Licencia
- Contribuidores
- Información del autor
Introducción
Un rol de Ansible que instala Kubernetes en Linux.
Requisitos
- Docker; se recomienda el rol para la instalación de Docker:
geerlingguy.docker
. - Balanceador de carga o keepalived para HA; se recomienda el rol para la instalación de keepalived:
evrardjp.keepalived
Dependencias
- Biblioteca de Python Docker
Variables
Comunes
Nombre | Predeterminado | Descripción |
---|---|---|
kubernetes_cluster_name | "kubernetes" | nombre del cluster de Kubernetes |
kubernetes_master_version | "v1.13.2" | Esta es la versión de los componentes maestros de Kubernetes |
kubernetes_version_rhel_package | '1.13.2' | solo Red Hat, versión de kubectl, kubeadm, kubelet |
kubernetes_yum_arch | x86_64 | solo Red Hat |
kubernetes_apt_repo_url | http://apt.kubernetes.io/ | solo Debian, repositorio de Kubernetes |
kubernetes_apt_repo_pool | kubernetes-xenial | solo Debian, pool de repositorio de Kubernetes |
kubernetes_useHyperKubeImage | "false" | opción para cambiar la imagen de Docker del plano de control a hyperkube |
kubernetes_dns_type | "CoreDNS" | plugin de DNS en Kubernetes, puede ser: "kube-dns" o "CoreDNS" |
kubernetes_imageRepository | "k8s.gcr.io" | registro de Docker para los componentes maestros de Kubernetes |
kubernetes_config_dir | "/etc/kubernetes" | ruta de configuración |
kubernetes_certs_dir | "{{ kubernetes_config_dir }}/pki" | carpeta de certificados |
kubernetes_pod_manifest_path | Ruta absoluta donde se almacenarán los manifiestos de pods estáticos | "{{ kubernetes_config_dir }}/manifests" |
kubernetes_log_dir | "{{ kubernetes_log_dir }}/audit" | carpeta de registros |
kubernetes_audit_log_dir | "/var/log/kubernetes/audit" | carpeta de registros de auditoría |
kubernetes_log_age | 2 | edad máxima de los archivos de registro |
kubernetes_authorization_mode | "Node,RBAC" | modo de autorización de Kubernetes |
kubernetes_enable_admission_plugins | "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota" | plugins de admisión habilitados en Kubernetes |
kubernetes_dns_domain | "cluster.local" | dominio de DNS interno en el cluster de Kubernetes |
kubernetes_pod_subnet | "10.244.0.0/16" | subred ipv4 para pods, debe ser un cidr |
kubernetes_service_subnet | "10.96.0.0/16" | subred ipv4 para servicios, debe ser un cidr |
kubernetes_kubelet_extra_args | "" | argumentos adicionales para el daemon 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 }}' | versión de kubeadm |
Servidor API
Nombre | Predeterminado | Descripción |
---|---|---|
kubernetes_apiserver_dns | "" |
nombre DNS para el servidor API de Kubernetes |
kubernetes_apiserver_ip | - | IP virtual del load balancer del servidor API de Kubernetes |
kubernetes_apiserver_port | 6443 |
puerto del servidor API de Kubernetes |
kubernetes_apiserver_manifest_file | '{{ kubernetes_pod_manifest_path }}/kube-apiserver.yaml' |
Ruta absoluta al archivo de manifiesto |
Etcd
Nombre | Descripción | Predeterminado |
---|---|---|
kubernetes_etcd_certs_dir | Ruta para almacenar los certificados de Etcd | '{{ kubernetes_certs_dir }}/etcd' |
kubernetes_etcd_ca_cert_file | Archivo del certificado CA de Etcd | '{{ kubernetes_etcd_certs_dir }}/ca.crt' |
kubernetes_etcd_ca_key_file | Archivo de la clave CA de Etcd | '{{ kubernetes_etcd_certs_dir }}/ca.key' |
kubernetes_etcd_server_cert_file | Archivo del certificado del servidor Etcd | '{{ kubernetes_etcd_certs_dir }}/server.crt' |
kubernetes_etcd_server_key_file | Archivo de la clave del servidor 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 | carpeta para los datos de etcd | /var/etcd |
kubernetes_etcd_server_port | Puerto de comunicación del servidor Etcd | 2380 |
kubernetes_etcd_client_port | Puerto de comunicación del cliente Etcd | 2379 |
Controlador
Nombre | Descripción | Predeterminado |
---|---|---|
kubernetes_controller_manager_manifest_file | Ruta absoluta al archivo de manifiesto | '{{ kubernetes_pod_manifest_path }}/kube-controller-manager.yaml' |
kubeadm
Nombre | Descripción | Predeterminado |
---|---|---|
kubernetes_kubeadm_config_file_path | Ruta para almacenar el archivo de configuración de kubeadm | '{{ kubernetes_config_dir }}/kubeadm' |
kubernetes_kubeadm_config_file_name | Nombre del archivo de configuración de kubeadm | clusterconfig.yaml |
Programador
Nombre | Descripción | Predeterminado |
---|---|---|
kubernetes_scheduler_manifest_file | Ruta absoluta al archivo de manifiesto | '{{ kubernetes_pod_manifest_path }}/kube-scheduler.yaml' |
Proveedor de Nube
Nombre | Descripción | Predeterminado |
---|---|---|
kubernetes_cloud_provider | elige el proveedor de nube compatible, valores: "" o "vsphere" | "" |
kubernetes_cloud_config_file | ruta para el archivo cloud_config | "{{ kubernetes_config_dir }}/{{ kubernetes_cloud_provider }}.conf" |
kubernetes_cloud_vsphere_workspace_server | opción servidor en el área [workspace] del cloud_config (solo vsphere) | "" |
kubernetes_cloud_vsphere_workspace_datacenter | opción datacenter en el área [workspace] del cloud_config (solo vsphere) | "" |
kubernetes_cloud_vsphere_workspace_default_datastore | opción default_datastore en el área [workspace] del cloud_config (solo vsphere) | "" |
kubernetes_cloud_vsphere_workspace_folder | opción folder en el área [workspace] del cloud_config (solo vsphere) | "" |
kubernetes_cloud_vsphere_default_user | opción user en el área [global] del cloud_config (solo vsphere) | "" |
kubernetes_cloud_vsphere_default_password | opción password en el área [global] del cloud_config (solo vsphere) | "" |
kubernetes_cloud_vsphere_datacenters | lista de datacenters con los atributos: server,datacenters,username,password del cloud_config (solo vsphere) | [] |
kubernetes_cloud_vsphere_network_options | todas las opciones en el área [network] del cloud_config (solo vsphere) | [] |
kubernetes_cloud_vsphere_disk_options | todas las opciones en el área [disk] del cloud_config (solo vsphere) | [] |
Ejemplos de Playbooks
Hay un Vagrantfile para crear todos los servidores para todos los escenarios: Vagrantfile servers.yml (necesario para el Vagrantfile)
Todo en Uno
Cluster de un solo maestro
etcd separado, Cluster de un solo maestro
Cluster de maestro HA
etcd separado, Cluster de maestro HA
Licencia
Apache 2.0
Contribuidores
Información del autor
creado en 2018 por André Möller
Acerca del proyecto
this role install an high available / non high available kubernetes cluster with kubeadm.
Instalar
ansible-galaxy install anmoel.kubernetes
Licencia
apache-2.0
Descargas
3k
Propietario