Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change Flatcar kubelet.service container from rkt to docker #855

Merged
merged 1 commit into from
Oct 19, 2020

Conversation

dghubble
Copy link
Member

  • Use docker to run the kubelet.service container
  • Update Kubelet mounts to match Fedora CoreOS
  • Remove unused /etc/ssl/certs mount (see Fix kubelet cert symlinks in Fedora CoreOS #810)
  • Remove unused /usr/share/ca-certificates mount
  • Remove /etc/resolv.conf mount, Docker default is ok
  • Change delete-node.service to use docker instead of rkt and inline ExecStart, as was done on Fedora CoreOS
  • Fix permission denied on shutdown delete-node, caused by the kubeconfig mount changing with the introduction of node TLS bootstrap

Background

  • podmand, rkt, and runc daemonless container process runners provide advantages over the docker daemon for system containers. Docker requires workarounds for use in systemd units where the ExecStart must tail logs so systemd can monitor the daemonized container. Propose better way to run docker from a unit file moby/moby#6791
  • Why switch then? On Flatcar Linux, podman isn't shipped. rkt works, but isn't developing while container standards continue
    to move forward. Typhoon has used runc for the Kubelet runner before in Fedora Atomic, but its more low-level. So we're left with Docker, which is less than ideal, but shipped in Flatcar
  • Flatcar Linux appears to be shifting system components to use docker, which does provide some limited guards against breakages (e.g. Flatcar cannot enable docker live restore)

* Use docker to run the `kubelet.service` container
* Update Kubelet mounts to match Fedora CoreOS
* Remove unused `/etc/ssl/certs` mount (see
#810)
* Remove unused `/usr/share/ca-certificates` mount
* Remove `/etc/resolv.conf` mount, Docker default is ok
* Change `delete-node.service` to use docker instead of rkt
and inline ExecStart, as was done on Fedora CoreOS
* Fix permission denied on shutdown `delete-node`, caused
by the kubeconfig mount changing with the introduction of
node TLS bootstrap

Background

* podmand, rkt, and runc daemonless container process runners
provide advantages over the docker daemon for system containers.
Docker requires workarounds for use in systemd units where the
ExecStart must tail logs so systemd can monitor the daemonized
container. moby/moby#6791
* Why switch then? On Flatcar Linux, podman isn't shipped. rkt
works, but isn't developing while container standards continue
to move forward. Typhoon has used runc for the Kubelet runner
before in Fedora Atomic, but its more low-level. So we're left
with Docker, which is less than ideal, but shipped in Flatcar
* Flatcar Linux appears to be shifting system components to
use docker, which does provide some limited guards against
breakages (e.g. Flatcar cannot enable docker live restore)
@dghubble dghubble merged commit eda78db into master Oct 19, 2020
dghubble added a commit that referenced this pull request Oct 21, 2020
* Kubelet trusts only the cluster CA certificate (and
certificates in the Kubelet debian base image), there
is no longer a need to mount the host's trusted certs
* Similar change on Flatcar Linux in
#855

Rel: #810
@dghubble dghubble deleted the flatcar-kubelet branch October 21, 2020 07:06
dghubble added a commit that referenced this pull request Nov 4, 2020
* Use docker to run the `etcd-member.service` container

Background:

* #855
dghubble added a commit that referenced this pull request Nov 4, 2020
* Use docker to run the `etcd-member.service` container
* Use env-file `/etc/etcd/etcd.env` like podman on FCOS
* Background: #855
dghubble-robot pushed a commit to poseidon/terraform-azure-kubernetes that referenced this pull request Nov 5, 2020
* Use docker to run the `etcd-member.service` container
* Use env-file `/etc/etcd/etcd.env` like podman on FCOS
* Background: poseidon/typhoon#855
dghubble-robot pushed a commit to poseidon/terraform-digitalocean-kubernetes that referenced this pull request Nov 5, 2020
* Use docker to run the `etcd-member.service` container
* Use env-file `/etc/etcd/etcd.env` like podman on FCOS
* Background: poseidon/typhoon#855
dghubble-robot pushed a commit to poseidon/terraform-aws-kubernetes that referenced this pull request Nov 5, 2020
* Use docker to run the `etcd-member.service` container
* Use env-file `/etc/etcd/etcd.env` like podman on FCOS
* Background: poseidon/typhoon#855
dghubble-robot pushed a commit to poseidon/terraform-onprem-kubernetes that referenced this pull request Nov 5, 2020
* Use docker to run the `etcd-member.service` container
* Use env-file `/etc/etcd/etcd.env` like podman on FCOS
* Background: poseidon/typhoon#855
dghubble-robot pushed a commit to poseidon/terraform-google-kubernetes that referenced this pull request Nov 5, 2020
* Use docker to run the `etcd-member.service` container
* Use env-file `/etc/etcd/etcd.env` like podman on FCOS
* Background: poseidon/typhoon#855
dghubble added a commit that referenced this pull request Nov 12, 2020
* Use docker to run `bootstrap.service` container
* Background #855
dghubble added a commit that referenced this pull request Nov 12, 2020
* Use docker to run `bootstrap.service` container
* Background #855
dghubble-robot pushed a commit to poseidon/terraform-azure-kubernetes that referenced this pull request Nov 12, 2020
* Use docker to run `bootstrap.service` container
* Background poseidon/typhoon#855
dghubble-robot pushed a commit to poseidon/terraform-digitalocean-kubernetes that referenced this pull request Nov 12, 2020
* Use docker to run `bootstrap.service` container
* Background poseidon/typhoon#855
dghubble-robot pushed a commit to poseidon/terraform-aws-kubernetes that referenced this pull request Nov 12, 2020
* Use docker to run `bootstrap.service` container
* Background poseidon/typhoon#855
dghubble-robot pushed a commit to poseidon/terraform-onprem-kubernetes that referenced this pull request Nov 12, 2020
* Use docker to run `bootstrap.service` container
* Background poseidon/typhoon#855
dghubble-robot pushed a commit to poseidon/terraform-google-kubernetes that referenced this pull request Nov 12, 2020
* Use docker to run `bootstrap.service` container
* Background poseidon/typhoon#855
torrescd pushed a commit to torrescd/typhoon that referenced this pull request Aug 4, 2021
* Use docker to run the `etcd-member.service` container
* Use env-file `/etc/etcd/etcd.env` like podman on FCOS
* Background: poseidon#855

(cherry picked from commit ad1f59c)
torrescd pushed a commit to torrescd/typhoon that referenced this pull request Aug 4, 2021
* Use docker to run `bootstrap.service` container
* Background poseidon#855

(cherry picked from commit 152c7d8)
Snaipe pushed a commit to aristanetworks/monsoon that referenced this pull request Apr 13, 2023
* Kubelet trusts only the cluster CA certificate (and
certificates in the Kubelet debian base image), there
is no longer a need to mount the host's trusted certs
* Similar change on Flatcar Linux in
poseidon#855

Rel: poseidon#810
Snaipe pushed a commit to aristanetworks/monsoon that referenced this pull request Apr 13, 2023
* Use docker to run the `etcd-member.service` container
* Use env-file `/etc/etcd/etcd.env` like podman on FCOS
* Background: poseidon#855
Snaipe pushed a commit to aristanetworks/monsoon that referenced this pull request Apr 13, 2023
* Use docker to run `bootstrap.service` container
* Background poseidon#855
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant