Merge pull request #3130 from riverzhang/add-control-plane

Add kubeadm controlplaneEndpoint
This commit is contained in:
Andreas Krüger 2018-08-20 10:43:50 +02:00 committed by GitHub
commit 497db69c9f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 25 additions and 4 deletions

View file

@ -133,4 +133,4 @@ bin_dir: /usr/local/bin
#kube_read_only_port: 10255
# Does coreos need auto upgrade, default is true
#coreos_auto_upgrade: true
#coreos_auto_upgrade: true

View file

@ -70,7 +70,10 @@
regexp: 'server:'
line: ' server: {{ kube_apiserver_endpoint }}'
backup: yes
when: not is_kube_master and kubeadm_discovery_address != kube_apiserver_endpoint
when:
- kubeadm_config_api_fqdn is not defined
- not is_kube_master
- kubeadm_discovery_address != kube_apiserver_endpoint
notify: restart kubelet
- name: Update server field in kube-proxy kubeconfig
@ -80,10 +83,16 @@
| {{ bin_dir }}/kubectl replace -f -
delegate_to: "{{groups['kube-master']|first}}"
run_once: true
when: is_kube_master and kubeadm_discovery_address != kube_apiserver_endpoint
when:
- kubeadm_config_api_fqdn is not defined
- is_kube_master
- kubeadm_discovery_address != kube_apiserver_endpoint
- name: Restart all kube-proxy pods to ensure that they load the new configmap
shell: "{{ bin_dir }}/kubectl delete pod -n kube-system -l k8s-app=kube-proxy"
delegate_to: "{{groups['kube-master']|first}}"
run_once: true
when: is_kube_master and kubeadm_discovery_address != kube_apiserver_endpoint
when:
- kubeadm_config_api_fqdn is not defined
- is_kube_master
- kubeadm_discovery_address != kube_apiserver_endpoint

View file

@ -91,6 +91,12 @@
kubeadmConfig_api_version: v1alpha2
when: kubeadm_output.stdout|version_compare('v1.11.0', '>=')
# Nginx LB(default), If kubeadm_config_api_fqdn is defined, use other LB by kubeadm controlPlaneEndpoint.
- name: set kubeadm_config_api_fqdn define
set_fact:
kubeadm_config_api_fqdn: "{{ apiserver_loadbalancer_domain_name|default('lb-apiserver.kubernetes.local') }}"
when: loadbalancer_apiserver is defined
- name: kubeadm | Create kubeadm config
template:
src: "kubeadm-config.{{ kubeadmConfig_api_version }}.yaml.j2"

View file

@ -3,6 +3,9 @@ kind: MasterConfiguration
api:
advertiseAddress: {{ ip | default(ansible_default_ipv4.address) }}
bindPort: {{ kube_apiserver_port }}
{% if groups['kube-master'] | length > 1 and kubeadm_config_api_fqdn is defined %}
controlPlaneEndpoint: {{ kubeadm_config_api_fqdn }}
{% endif %}
etcd:
endpoints:
{% for endpoint in etcd_access_addresses.split(',') %}

View file

@ -3,6 +3,9 @@ kind: MasterConfiguration
api:
advertiseAddress: {{ ip | default(ansible_default_ipv4.address) }}
bindPort: {{ kube_apiserver_port }}
{% if groups['kube-master'] | length > 1 and kubeadm_config_api_fqdn is defined %}
controlPlaneEndpoint: {{ kubeadm_config_api_fqdn }}
{% endif %}
etcd:
external:
endpoints: