update network-y stuff for supporting ubuntu/bionic as master

On bionic, we don't have eth0 hard coded. example below, so we use `ip
route` to figure out the default ethernet interface
```
dims@kubernetes-master:~$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 42:01:0a:80:00:23 brd ff:ff:ff:ff:ff:ff
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
    link/ether 02:42:b2:4e:dd:86 brd ff:ff:ff:ff:ff:ff
```

Also, bionic uses systemd-resolver by default and adds entries in
/etc/resolv.conf that CoreDNS does not link. So follow the
recommendation in the documentation to specify resolv.conf explicitly
This commit is contained in:
Davanum Srinivas 2020-02-02 17:58:01 -05:00
parent 2a17cfbd45
commit ee3f897ca7
No known key found for this signature in database
GPG Key ID: 80D83A796103BF59

View File

@ -765,6 +765,11 @@ function construct-linux-kubelet-flags {
flags+=" --kubeconfig=/var/lib/kubelet/bootstrap-kubeconfig"
flags+=" --register-schedulable=false"
fi
if [[ "${MASTER_OS_DISTRIBUTION}" == "ubuntu" ]]; then
# Configure the file path for host dns configuration
# as ubuntu uses systemd-resolved
flags+=" --resolv-conf=/run/systemd/resolve/resolv.conf"
fi
else # For nodes
flags+=" ${NODE_KUBELET_TEST_ARGS:-}"
flags+=" --bootstrap-kubeconfig=/var/lib/kubelet/bootstrap-kubeconfig"
@ -772,6 +777,11 @@ function construct-linux-kubelet-flags {
if [[ "${node_type}" == "heapster" ]]; then
flags+=" ${HEAPSTER_KUBELET_TEST_ARGS:-}"
fi
if [[ "${NODE_OS_DISTRIBUTION}" == "ubuntu" ]]; then
# Configure the file path for host dns configuration
# as ubuntu uses systemd-resolved
flags+=" --resolv-conf=/run/systemd/resolve/resolv.conf"
fi
fi
# Network plugin
if [[ -n "${NETWORK_PROVIDER:-}" || -n "${NETWORK_POLICY_PROVIDER:-}" ]]; then
@ -2925,7 +2935,7 @@ function attach-internal-master-ip() {
echo "Setting ${name}'s aliases to '${aliases}' (added ${ip})"
# Attach ${ip} to ${name}
gcloud compute instances network-interfaces update "${name}" --project "${PROJECT}" --zone "${zone}" --aliases="${aliases}"
run-gcloud-command "${name}" "${zone}" "sudo ip route add to local ${ip}/32 dev eth0"
run-gcloud-command "${name}" "${zone}" 'sudo ip route add to local '${ip}'/32 dev $(ip route | grep default | awk '\''{print $5}'\'')' || true
return $?
}
@ -2943,7 +2953,7 @@ function detach-internal-master-ip() {
echo "Setting ${name}'s aliases to '${aliases}' (removed ${ip})"
# Detach ${MASTER_NAME}-internal-ip from ${name}
gcloud compute instances network-interfaces update "${name}" --project "${PROJECT}" --zone "${zone}" --aliases="${aliases}"
run-gcloud-command "${name}" "${zone}" "sudo ip route del to local ${ip}/32 dev eth0"
run-gcloud-command "${name}" "${zone}" 'sudo ip route del to local '${ip}'/32 dev $(ip route | grep default | awk '\''{print $5}'\'')' || true
return $?
}