Browse Source

Add kubeadm controlplaneEndpoint

Nginx LB(default)
Other LB by kubeadm controlplane
pull/3130/head
rongzhang 6 years ago
parent
commit
59176ebbb9
5 changed files with 25 additions and 4 deletions
  1. 2
      inventory/sample/group_vars/all.yml
  2. 15
      roles/kubernetes/kubeadm/tasks/main.yml
  3. 6
      roles/kubernetes/master/tasks/kubeadm-setup.yml
  4. 3
      roles/kubernetes/master/templates/kubeadm-config.v1alpha1.yaml.j2
  5. 3
      roles/kubernetes/master/templates/kubeadm-config.v1alpha2.yaml.j2

2
inventory/sample/group_vars/all.yml

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

15
roles/kubernetes/kubeadm/tasks/main.yml

@ -70,7 +70,10 @@
regexp: 'server:' regexp: 'server:'
line: ' server: {{ kube_apiserver_endpoint }}' line: ' server: {{ kube_apiserver_endpoint }}'
backup: yes 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 notify: restart kubelet
- name: Update server field in kube-proxy kubeconfig - name: Update server field in kube-proxy kubeconfig
@ -80,10 +83,16 @@
| {{ bin_dir }}/kubectl replace -f - | {{ bin_dir }}/kubectl replace -f -
delegate_to: "{{groups['kube-master']|first}}" delegate_to: "{{groups['kube-master']|first}}"
run_once: true 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 - 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" shell: "{{ bin_dir }}/kubectl delete pod -n kube-system -l k8s-app=kube-proxy"
delegate_to: "{{groups['kube-master']|first}}" delegate_to: "{{groups['kube-master']|first}}"
run_once: true 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

6
roles/kubernetes/master/tasks/kubeadm-setup.yml

@ -91,6 +91,12 @@
kubeadmConfig_api_version: v1alpha2 kubeadmConfig_api_version: v1alpha2
when: kubeadm_output.stdout|version_compare('v1.11.0', '>=') 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 - name: kubeadm | Create kubeadm config
template: template:
src: "kubeadm-config.{{ kubeadmConfig_api_version }}.yaml.j2" src: "kubeadm-config.{{ kubeadmConfig_api_version }}.yaml.j2"

3
roles/kubernetes/master/templates/kubeadm-config.v1alpha1.yaml.j2

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

3
roles/kubernetes/master/templates/kubeadm-config.v1alpha2.yaml.j2

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

Loading…
Cancel
Save