2017-08-24 17:09:52 +08:00
|
|
|
---
|
2017-11-03 18:19:37 +08:00
|
|
|
# advertised host IP for kubelet. This affects network plugin config. Take caution
|
2022-06-07 01:08:21 +08:00
|
|
|
kubelet_address: "{{ ip | default(fallback_ips[inventory_hostname]) }}{{ (',' + ip6) if enable_dual_stack_networks and ip6 is defined else '' }}"
|
2017-11-03 18:19:37 +08:00
|
|
|
|
|
|
|
# bind address for kubelet. Set to 0.0.0.0 to listen on all interfaces
|
|
|
|
kubelet_bind_address: "{{ ip | default('0.0.0.0') }}"
|
|
|
|
|
2016-07-20 16:57:47 +08:00
|
|
|
# resolv.conf to base dns config
|
|
|
|
kube_resolv_conf: "/etc/resolv.conf"
|
|
|
|
|
2017-04-05 18:47:03 +08:00
|
|
|
# Set to empty to avoid cgroup creation
|
2017-07-19 22:57:36 +08:00
|
|
|
kubelet_enforce_node_allocatable: "\"\""
|
2017-10-12 02:47:42 +08:00
|
|
|
|
2021-11-05 22:59:54 +08:00
|
|
|
# Set runtime and kubelet cgroups when using systemd as cgroup driver (default)
|
2023-03-06 10:48:58 +08:00
|
|
|
kube_service_cgroups: "{% if kube_reserved %}{{ kube_reserved_cgroups_for_service_slice }}{% else %}system.slice{% endif %}"
|
|
|
|
kubelet_runtime_cgroups: "/{{ kube_service_cgroups }}/{{ container_manager }}.service"
|
|
|
|
kubelet_kubelet_cgroups: "/{{ kube_service_cgroups }}/kubelet.service"
|
2018-08-10 01:53:11 +08:00
|
|
|
|
2021-11-05 22:59:54 +08:00
|
|
|
# Set runtime and kubelet cgroups when using cgroupfs as cgroup driver
|
2022-12-31 00:05:30 +08:00
|
|
|
kubelet_runtime_cgroups_cgroupfs: "/system.slice/{{ container_manager }}.service"
|
2022-02-02 16:50:22 +08:00
|
|
|
kubelet_kubelet_cgroups_cgroupfs: "/system.slice/kubelet.service"
|
2021-11-05 22:59:54 +08:00
|
|
|
|
2022-08-31 02:18:55 +08:00
|
|
|
# Set systemd service hardening features
|
|
|
|
kubelet_systemd_hardening: false
|
|
|
|
|
|
|
|
# List of secure IPs for kubelet
|
2022-10-06 15:35:51 +08:00
|
|
|
kubelet_secure_addresses: >-
|
|
|
|
{%- for host in groups['kube_control_plane'] -%}
|
|
|
|
{{ hostvars[host]['ip'] | default(fallback_ips[host]) }}{{ ' ' if not loop.last else '' }}
|
|
|
|
{%- endfor -%}
|
2022-08-31 02:18:55 +08:00
|
|
|
|
2018-03-07 18:30:34 +08:00
|
|
|
# Reserve this space for kube resources
|
2022-12-31 00:05:30 +08:00
|
|
|
# Set to true to reserve resources for kube daemons
|
|
|
|
kube_reserved: false
|
|
|
|
kube_reserved_cgroups_for_service_slice: kube.slice
|
|
|
|
kube_reserved_cgroups: "/{{ kube_reserved_cgroups_for_service_slice }}"
|
2020-09-23 06:20:09 +08:00
|
|
|
kube_memory_reserved: 256Mi
|
2018-03-07 18:30:34 +08:00
|
|
|
kube_cpu_reserved: 100m
|
2022-06-06 22:34:26 +08:00
|
|
|
# kube_ephemeral_storage_reserved: 2Gi
|
2022-07-31 11:14:27 +08:00
|
|
|
# kube_pid_reserved: "1000"
|
2017-10-12 02:47:42 +08:00
|
|
|
# Reservation for master hosts
|
2020-09-23 06:20:09 +08:00
|
|
|
kube_master_memory_reserved: 512Mi
|
2018-03-07 18:30:34 +08:00
|
|
|
kube_master_cpu_reserved: 200m
|
2022-06-06 22:34:26 +08:00
|
|
|
# kube_master_ephemeral_storage_reserved: 2Gi
|
2022-07-31 11:14:27 +08:00
|
|
|
# kube_master_pid_reserved: "1000"
|
2017-10-12 02:47:42 +08:00
|
|
|
|
2020-09-23 06:20:09 +08:00
|
|
|
# Set to true to reserve resources for system daemons
|
|
|
|
system_reserved: false
|
2022-12-31 00:05:30 +08:00
|
|
|
system_reserved_cgroups_for_service_slice: system.slice
|
|
|
|
system_reserved_cgroups: "/{{ system_reserved_cgroups_for_service_slice }}"
|
2020-09-23 06:20:09 +08:00
|
|
|
system_memory_reserved: 512Mi
|
|
|
|
system_cpu_reserved: 500m
|
2022-06-06 22:34:26 +08:00
|
|
|
# system_ephemeral_storage_reserved: 2Gi
|
2022-07-31 11:14:27 +08:00
|
|
|
# system_pid_reserved: "1000"
|
2020-09-23 06:20:09 +08:00
|
|
|
# Reservation for master hosts
|
|
|
|
system_master_memory_reserved: 256Mi
|
|
|
|
system_master_cpu_reserved: 250m
|
2022-06-06 22:34:26 +08:00
|
|
|
# system_master_ephemeral_storage_reserved: 2Gi
|
2022-07-31 11:14:27 +08:00
|
|
|
# system_master_pid_reserved: "1000"
|
2020-09-23 06:20:09 +08:00
|
|
|
|
2022-01-24 16:13:57 +08:00
|
|
|
## Eviction Thresholds to avoid system OOMs
|
|
|
|
# https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/#eviction-thresholds
|
|
|
|
eviction_hard: {}
|
|
|
|
eviction_hard_control_plane: {}
|
|
|
|
|
2017-02-07 22:01:02 +08:00
|
|
|
kubelet_status_update_frequency: 10s
|
2017-10-12 02:47:42 +08:00
|
|
|
|
2022-04-08 01:37:57 +08:00
|
|
|
# kube-vip
|
2023-04-23 10:01:12 +08:00
|
|
|
kube_vip_version: v0.5.12
|
2022-04-08 01:37:57 +08:00
|
|
|
|
|
|
|
kube_vip_arp_enabled: false
|
|
|
|
kube_vip_interface:
|
|
|
|
kube_vip_services_interface:
|
|
|
|
kube_vip_cidr: 32
|
|
|
|
kube_vip_controlplane_enabled: false
|
|
|
|
kube_vip_ddns_enabled: false
|
|
|
|
kube_vip_services_enabled: false
|
|
|
|
kube_vip_leader_election_enabled: "{{ kube_vip_arp_enabled }}"
|
|
|
|
kube_vip_bgp_enabled: false
|
|
|
|
kube_vip_bgp_routerid:
|
|
|
|
kube_vip_local_as: 65000
|
|
|
|
kube_vip_bgp_peeraddress:
|
|
|
|
kube_vip_bgp_peerpass:
|
2022-10-24 09:00:24 +08:00
|
|
|
kube_vip_bgp_peeras: 65000
|
2022-04-08 01:37:57 +08:00
|
|
|
kube_vip_bgppeers:
|
|
|
|
kube_vip_address:
|
2023-01-03 10:35:33 +08:00
|
|
|
kube_vip_enableServicesElection: false
|
2023-02-13 11:25:28 +08:00
|
|
|
kube_vip_lb_enable: false
|
2022-04-08 01:37:57 +08:00
|
|
|
|
2019-04-10 20:56:18 +08:00
|
|
|
# Requests for load balancer app
|
|
|
|
loadbalancer_apiserver_memory_requests: 32M
|
|
|
|
loadbalancer_apiserver_cpu_requests: 25m
|
2016-12-23 22:44:44 +08:00
|
|
|
|
2019-09-05 15:32:51 +08:00
|
|
|
loadbalancer_apiserver_keepalive_timeout: 5m
|
2023-06-08 17:54:13 +08:00
|
|
|
loadbalancer_apiserver_pod_name: "{% if loadbalancer_apiserver_type == 'nginx' %}nginx-proxy{% else %}haproxy{% endif %}"
|
2019-09-05 15:32:51 +08:00
|
|
|
|
2019-09-11 03:06:55 +08:00
|
|
|
# Uncomment if you need to enable deprecated runtimes
|
2016-03-17 17:22:52 +08:00
|
|
|
# kube_api_runtime_config:
|
2019-09-11 03:06:55 +08:00
|
|
|
# - apps/v1beta1=true
|
2019-10-30 16:58:53 +08:00
|
|
|
# - apps/v1beta2=true
|
2016-03-17 17:22:52 +08:00
|
|
|
# - extensions/v1beta1/daemonsets=true
|
|
|
|
# - extensions/v1beta1/deployments=true
|
2019-09-11 03:06:55 +08:00
|
|
|
# - extensions/v1beta1/replicasets=true
|
|
|
|
# - extensions/v1beta1/networkpolicies=true
|
2016-09-28 19:05:08 +08:00
|
|
|
|
2017-02-03 23:26:30 +08:00
|
|
|
# A port range to reserve for services with NodePort visibility.
|
|
|
|
# Inclusive at both ends of the range.
|
|
|
|
kube_apiserver_node_port_range: "30000-32767"
|
2017-02-10 00:25:44 +08:00
|
|
|
|
2018-05-15 22:34:03 +08:00
|
|
|
# Configure the amount of pods able to run on single node
|
|
|
|
# default is equal to application default
|
|
|
|
kubelet_max_pods: 110
|
|
|
|
|
2022-07-05 15:20:48 +08:00
|
|
|
# Sets the maximum number of processes running per Pod
|
|
|
|
# Default value -1 = unlimited
|
|
|
|
kubelet_pod_pids_limit: -1
|
|
|
|
|
2020-02-15 08:05:28 +08:00
|
|
|
## Support parameters to be passed to kubelet via kubelet-config.yaml
|
|
|
|
kubelet_config_extra_args: {}
|
|
|
|
|
2021-11-05 22:59:54 +08:00
|
|
|
## Parameters to be passed to kubelet via kubelet-config.yaml when cgroupfs is used as cgroup driver
|
|
|
|
kubelet_config_extra_args_cgroupfs:
|
|
|
|
systemCgroups: /system.slice
|
|
|
|
cgroupRoot: /
|
|
|
|
|
2020-02-15 08:05:28 +08:00
|
|
|
## Support parameters to be passed to kubelet via kubelet-config.yaml only on nodes, not masters
|
|
|
|
kubelet_node_config_extra_args: {}
|
|
|
|
|
2020-11-26 16:32:19 +08:00
|
|
|
# Maximum number of container log files that can be present for a container.
|
|
|
|
kubelet_logfiles_max_nr: 5
|
|
|
|
|
|
|
|
# Maximum size of the container log file before it is rotated
|
|
|
|
kubelet_logfiles_max_size: 10Mi
|
|
|
|
|
2017-08-24 17:09:52 +08:00
|
|
|
## Support custom flags to be passed to kubelet
|
2017-05-12 22:32:37 +08:00
|
|
|
kubelet_custom_flags: []
|
2017-06-08 05:09:36 +08:00
|
|
|
|
2018-09-19 18:55:30 +08:00
|
|
|
## Support custom flags to be passed to kubelet only on nodes, not masters
|
|
|
|
kubelet_node_custom_flags: []
|
|
|
|
|
2017-07-13 22:04:39 +08:00
|
|
|
# If non-empty, will use this string as identification instead of the actual hostname
|
2017-12-20 04:18:20 +08:00
|
|
|
kube_override_hostname: >-
|
2023-07-05 11:36:54 +08:00
|
|
|
{%- if cloud_provider is defined and cloud_provider in ['aws'] -%}
|
2017-12-22 19:31:18 +08:00
|
|
|
{%- else -%}
|
2018-02-06 08:38:05 +08:00
|
|
|
{{ inventory_hostname }}
|
2017-12-22 19:31:18 +08:00
|
|
|
{%- endif -%}
|
2017-11-06 21:50:28 +08:00
|
|
|
|
2018-01-16 15:11:41 +08:00
|
|
|
# The read-only port for the Kubelet to serve on with no authentication/authorization.
|
|
|
|
kube_read_only_port: 0
|
2018-03-31 08:18:23 +08:00
|
|
|
|
2019-12-04 03:56:58 +08:00
|
|
|
# Port for healthz for Kubelet
|
|
|
|
kubelet_healthz_port: 10248
|
|
|
|
|
|
|
|
# Bind address for healthz for Kubelet
|
|
|
|
kubelet_healthz_bind_address: 127.0.0.1
|
|
|
|
|
2018-04-27 23:50:58 +08:00
|
|
|
# sysctl_file_path to add sysctl conf to
|
|
|
|
sysctl_file_path: "/etc/sysctl.d/99-sysctl.conf"
|
2018-03-31 08:18:23 +08:00
|
|
|
|
|
|
|
# For the openstack integration kubelet will need credentials to access
|
|
|
|
# openstack apis like nova and cinder. Per default this values will be
|
|
|
|
# read from the environment.
|
2023-07-05 11:36:54 +08:00
|
|
|
openstack_auth_url: "{{ lookup('env', 'OS_AUTH_URL') }}"
|
|
|
|
openstack_username: "{{ lookup('env', 'OS_USERNAME') }}"
|
|
|
|
openstack_password: "{{ lookup('env', 'OS_PASSWORD') }}"
|
|
|
|
openstack_region: "{{ lookup('env', 'OS_REGION_NAME') }}"
|
|
|
|
openstack_tenant_id: "{{ lookup('env', 'OS_TENANT_ID') | default(lookup('env', 'OS_PROJECT_ID') | default(lookup('env', 'OS_PROJECT_NAME'), true), true) }}"
|
|
|
|
openstack_tenant_name: "{{ lookup('env', 'OS_TENANT_NAME') }}"
|
|
|
|
openstack_domain_name: "{{ lookup('env', 'OS_USER_DOMAIN_NAME') }}"
|
|
|
|
openstack_domain_id: "{{ lookup('env', 'OS_USER_DOMAIN_ID') }}"
|
2018-03-31 08:18:23 +08:00
|
|
|
|
|
|
|
# For the vsphere integration, kubelet will need credentials to access
|
|
|
|
# vsphere apis
|
|
|
|
# Documentation regarding these values can be found
|
|
|
|
# https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/vsphere/vsphere.go#L105
|
|
|
|
vsphere_vcenter_ip: "{{ lookup('env', 'VSPHERE_VCENTER') }}"
|
|
|
|
vsphere_vcenter_port: "{{ lookup('env', 'VSPHERE_VCENTER_PORT') }}"
|
|
|
|
vsphere_user: "{{ lookup('env', 'VSPHERE_USER') }}"
|
|
|
|
vsphere_password: "{{ lookup('env', 'VSPHERE_PASSWORD') }}"
|
|
|
|
vsphere_datacenter: "{{ lookup('env', 'VSPHERE_DATACENTER') }}"
|
|
|
|
vsphere_datastore: "{{ lookup('env', 'VSPHERE_DATASTORE') }}"
|
|
|
|
vsphere_working_dir: "{{ lookup('env', 'VSPHERE_WORKING_DIR') }}"
|
|
|
|
vsphere_insecure: "{{ lookup('env', 'VSPHERE_INSECURE') }}"
|
|
|
|
vsphere_resource_pool: "{{ lookup('env', 'VSPHERE_RESOURCE_POOL') }}"
|
|
|
|
|
|
|
|
vsphere_scsi_controller_type: pvscsi
|
|
|
|
# vsphere_public_network is name of the network the VMs are joined to
|
2023-07-05 11:36:54 +08:00
|
|
|
vsphere_public_network: "{{ lookup('env', 'VSPHERE_PUBLIC_NETWORK') | default('') }}"
|
2018-03-31 08:18:23 +08:00
|
|
|
|
|
|
|
## When azure is used, you need to also set the following variables.
|
|
|
|
## see docs/azure.md for details on how to get these values
|
2018-05-12 00:11:38 +08:00
|
|
|
# azure_tenant_id:
|
|
|
|
# azure_subscription_id:
|
|
|
|
# azure_aad_client_id:
|
|
|
|
# azure_aad_client_secret:
|
|
|
|
# azure_resource_group:
|
|
|
|
# azure_location:
|
|
|
|
# azure_subnet_name:
|
|
|
|
# azure_security_group_name:
|
|
|
|
# azure_vnet_name:
|
|
|
|
# azure_route_table_name:
|
2020-04-01 01:12:40 +08:00
|
|
|
# supported values are 'standard' or 'vmss'
|
|
|
|
# azure_vmtype: standard
|
2019-04-24 17:14:01 +08:00
|
|
|
# Sku of Load Balancer and Public IP. Candidate values are: basic and standard.
|
|
|
|
azure_loadbalancer_sku: basic
|
|
|
|
# excludes master nodes from standard load balancer.
|
|
|
|
azure_exclude_master_from_standard_lb: true
|
|
|
|
# disables the outbound SNAT for public load balancer rules
|
|
|
|
azure_disable_outbound_snat: false
|
|
|
|
# use instance metadata service where possible
|
|
|
|
azure_use_instance_metadata: true
|
2020-06-26 05:35:30 +08:00
|
|
|
# use specific Azure API endpoints
|
|
|
|
azure_cloud: AzurePublicCloud
|
2020-08-13 17:48:13 +08:00
|
|
|
|
|
|
|
## Support tls min version, Possible values: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13.
|
|
|
|
# tls_min_version: ""
|
|
|
|
|
|
|
|
## Support tls cipher suites.
|
|
|
|
# tls_cipher_suites:
|
|
|
|
# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
|
|
|
|
# - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
|
|
|
|
# - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
|
|
|
|
# - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
|
|
|
|
# - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
|
|
|
|
# - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
|
|
|
|
# - TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
|
|
|
|
# - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
|
|
|
|
# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
|
|
|
|
# - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
|
|
|
|
# - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
|
|
|
|
# - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
|
|
|
|
# - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
|
|
|
|
# - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
|
|
|
|
# - TLS_ECDHE_RSA_WITH_RC4_128_SHA
|
|
|
|
# - TLS_RSA_WITH_3DES_EDE_CBC_SHA
|
|
|
|
# - TLS_RSA_WITH_AES_128_CBC_SHA
|
|
|
|
# - TLS_RSA_WITH_AES_128_CBC_SHA256
|
|
|
|
# - TLS_RSA_WITH_AES_128_GCM_SHA256
|
|
|
|
# - TLS_RSA_WITH_AES_256_CBC_SHA
|
|
|
|
# - TLS_RSA_WITH_AES_256_GCM_SHA384
|
|
|
|
# - TLS_RSA_WITH_RC4_128_SHA
|
2023-11-08 19:44:02 +08:00
|
|
|
|
|
|
|
kube_proxy_ipvs_modules:
|
|
|
|
- ip_vs
|
|
|
|
- ip_vs_rr
|
|
|
|
- ip_vs_wrr
|
|
|
|
- ip_vs_sh
|
|
|
|
- ip_vs_wlc
|
|
|
|
- ip_vs_lc
|
2023-11-20 16:48:06 +08:00
|
|
|
|
2023-11-29 01:31:02 +08:00
|
|
|
# Kubespray will use the first module of this list which it can successfully modprobe
|
|
|
|
conntrack_modules:
|
|
|
|
- nf_conntrack
|
|
|
|
- nf_conntrack_ipv4
|