Fix kubernetes apiserver advertise address

Set the kube-apiserver advertise address to the local
controller cluster-host unit address to ensure kubeadm
does not attempt to discover the default address which
in most cases will be invalid.

Set the kubeadm InitConfiguration advertiseAddress for
the initial controller master node.

Closes-Bug: 1877383
Change-Id: I759234685966234bf987a9e06be77a5f793ee782
Signed-off-by: Matt Peters <matt.peters@windriver.com>
This commit is contained in:
Matt Peters 2020-06-08 09:59:01 -05:00
parent ceee16c91f
commit 966bce1398
2 changed files with 5 additions and 4 deletions

View File

@ -116,14 +116,16 @@
args:
warn: false
with_items:
- "sed -i -e 's|<%= @apiserver_advertise_address %>|'$CLUSTER_IP'|g' /etc/kubernetes/kubeadm.yaml"
- "sed -i -e 's|<%= @apiserver_advertise_address %>|'$APISERVER_ADVERTISE_ADDRESS'|g' /etc/kubernetes/kubeadm.yaml"
- "sed -i -e 's|<%= @controlplane_endpoint %>|'$CONTROLPLANE_ENDPOINT'|g' /etc/kubernetes/kubeadm.yaml"
- "sed -i -e 's|<%= @etcd_endpoint %>|'$ETCD_ENDPOINT'|g' /etc/kubernetes/kubeadm.yaml"
- "sed -i -e 's|<%= @service_domain %>|'cluster.local'|g' /etc/kubernetes/kubeadm.yaml"
- "sed -i -e 's|<%= @pod_network_cidr %>|'$POD_NETWORK_CIDR'|g' /etc/kubernetes/kubeadm.yaml"
- "sed -i -e 's|<%= @service_network_cidr %>|'$SERVICE_NETWORK_CIDR'|g' /etc/kubernetes/kubeadm.yaml"
- "sed -i -e 's|<%= @ctrl_mgr_flex_vol_plugin_dir %>|'$VOLUME_PLUGIN_DIR'|g' /etc/kubernetes/kubeadm.yaml"
environment:
CLUSTER_IP: "{{ cluster_floating_address }}"
APISERVER_ADVERTISE_ADDRESS: "{{ controller_0_cluster_host }}"
CONTROLPLANE_ENDPOINT: "{{ cluster_floating_address }}"
ETCD_ENDPOINT: "http://{{ cluster_floating_address | ipwrap }}:2379"
POD_NETWORK_CIDR: "{{ cluster_pod_subnet }}"
SERVICE_NETWORK_CIDR: "{{ cluster_service_subnet }}"

View File

@ -7,7 +7,6 @@ nodeRegistration:
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
apiServer:
certSANs:
<% @apiserver_certsans.each do |item| -%>
@ -36,7 +35,7 @@ controllerManager:
pod-eviction-timeout: "30s"
feature-gates: "TTLAfterFinished=true"
flex-volume-plugin-dir: <%= @ctrl_mgr_flex_vol_plugin_dir %>
controlPlaneEndpoint: <%= @apiserver_advertise_address %>
controlPlaneEndpoint: <%= @controlplane_endpoint %>
etcd:
external:
endpoints: