Set docker log driver to json-file on Fedora CoreOS

* Fix the last minor issue for Fedora CoreOS clusters to pass CNCF's
Kubernetes conformance tests
* Kubelet supports a seldom used feature `kubectl logs --limit-bytes=N`
to trim a log stream to a desired length. Kubelet handles this in the
CRI driver. The Kubelet docker shim only supports the limit bytes
feature when Docker is configured with the default `json-file` logging
driver
* CNCF conformance tests started requiring limit-bytes be supported,
indirectly forcing the log driver choice until either the Kubelet or
the conformance tests are fixed
* Fedora CoreOS defaults Docker to use `journald` (desired). For now,
as a workaround to offer conformant clusters, the log driver can
be set back to `json-file`. RHEL CoreOS likely won't have noticed the
non-conformance since its using crio runtime
* https://github.com/kubernetes/kubernetes/issues/86367

Note: When upstream has a fix, the aim is to drop the docker config
override and use the journald default
This commit is contained in:
Dalton Hubble 2020-02-11 21:13:58 -08:00
parent 1243f395d1
commit 49d3b9e6b3
7 changed files with 82 additions and 2 deletions

View File

@ -6,6 +6,8 @@ Notable changes between versions.
* Kubernetes [v1.17.3](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.17.md#v1173) * Kubernetes [v1.17.3](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.17.md#v1173)
* Update Calico from v3.11.2 to v3.12.0 * Update Calico from v3.11.2 to v3.12.0
* Allow Fedora CoreOS clusters to pass CNCF conformance suite
* Set Docker log driver to `json-file` as a workaround
#### Bare-Metal #### Bare-Metal
@ -13,8 +15,8 @@ Notable changes between versions.
#### Google Cloud #### Google Cloud
* Add Terraform module for Fedora CoreOS ([#632](https://github.com/poseidon/typhoon/pull/632)) * Add initial Terraform module for Fedora CoreOS ([#632](https://github.com/poseidon/typhoon/pull/632))
* Add support for Flatcar Container Linux ([#639](https://github.com/poseidon/typhoon/pull/639)) * Add initial support for Flatcar Container Linux ([#639](https://github.com/poseidon/typhoon/pull/639))
#### Addons #### Addons

View File

@ -182,6 +182,19 @@ storage:
DefaultCPUAccounting=yes DefaultCPUAccounting=yes
DefaultMemoryAccounting=yes DefaultMemoryAccounting=yes
DefaultBlockIOAccounting=yes DefaultBlockIOAccounting=yes
- path: /etc/sysconfig/docker
mode: 0644
overwrite: true
contents:
inline: |
# Modify these options if you want to change the way the docker daemon runs
OPTIONS="--selinux-enabled \
--log-driver=json-file \
--live-restore \
--default-ulimit nofile=1024:1024 \
--init-path /usr/libexec/docker/docker-init \
--userland-proxy-path /usr/libexec/docker/docker-proxy \
"
- path: /etc/etcd/etcd.env - path: /etc/etcd/etcd.env
mode: 0644 mode: 0644
contents: contents:

View File

@ -98,6 +98,19 @@ storage:
DefaultCPUAccounting=yes DefaultCPUAccounting=yes
DefaultMemoryAccounting=yes DefaultMemoryAccounting=yes
DefaultBlockIOAccounting=yes DefaultBlockIOAccounting=yes
- path: /etc/sysconfig/docker
mode: 0644
overwrite: true
contents:
inline: |
# Modify these options if you want to change the way the docker daemon runs
OPTIONS="--selinux-enabled \
--log-driver=json-file \
--live-restore \
--default-ulimit nofile=1024:1024 \
--init-path /usr/libexec/docker/docker-init \
--userland-proxy-path /usr/libexec/docker/docker-proxy \
"
passwd: passwd:
users: users:
- name: core - name: core

View File

@ -193,6 +193,19 @@ storage:
DefaultCPUAccounting=yes DefaultCPUAccounting=yes
DefaultMemoryAccounting=yes DefaultMemoryAccounting=yes
DefaultBlockIOAccounting=yes DefaultBlockIOAccounting=yes
- path: /etc/sysconfig/docker
mode: 0644
overwrite: true
contents:
inline: |
# Modify these options if you want to change the way the docker daemon runs
OPTIONS="--selinux-enabled \
--log-driver=json-file \
--live-restore \
--default-ulimit nofile=1024:1024 \
--init-path /usr/libexec/docker/docker-init \
--userland-proxy-path /usr/libexec/docker/docker-proxy \
"
- path: /etc/etcd/etcd.env - path: /etc/etcd/etcd.env
mode: 0644 mode: 0644
contents: contents:

View File

@ -106,6 +106,19 @@ storage:
DefaultCPUAccounting=yes DefaultCPUAccounting=yes
DefaultMemoryAccounting=yes DefaultMemoryAccounting=yes
DefaultBlockIOAccounting=yes DefaultBlockIOAccounting=yes
- path: /etc/sysconfig/docker
mode: 0644
overwrite: true
contents:
inline: |
# Modify these options if you want to change the way the docker daemon runs
OPTIONS="--selinux-enabled \
--log-driver=json-file \
--live-restore \
--default-ulimit nofile=1024:1024 \
--init-path /usr/libexec/docker/docker-init \
--userland-proxy-path /usr/libexec/docker/docker-proxy \
"
passwd: passwd:
users: users:
- name: core - name: core

View File

@ -182,6 +182,19 @@ storage:
DefaultCPUAccounting=yes DefaultCPUAccounting=yes
DefaultMemoryAccounting=yes DefaultMemoryAccounting=yes
DefaultBlockIOAccounting=yes DefaultBlockIOAccounting=yes
- path: /etc/sysconfig/docker
mode: 0644
overwrite: true
contents:
inline: |
# Modify these options if you want to change the way the docker daemon runs
OPTIONS="--selinux-enabled \
--log-driver=json-file \
--live-restore \
--default-ulimit nofile=1024:1024 \
--init-path /usr/libexec/docker/docker-init \
--userland-proxy-path /usr/libexec/docker/docker-proxy \
"
- path: /etc/etcd/etcd.env - path: /etc/etcd/etcd.env
mode: 0644 mode: 0644
contents: contents:

View File

@ -98,6 +98,19 @@ storage:
DefaultCPUAccounting=yes DefaultCPUAccounting=yes
DefaultMemoryAccounting=yes DefaultMemoryAccounting=yes
DefaultBlockIOAccounting=yes DefaultBlockIOAccounting=yes
- path: /etc/sysconfig/docker
mode: 0644
overwrite: true
contents:
inline: |
# Modify these options if you want to change the way the docker daemon runs
OPTIONS="--selinux-enabled \
--log-driver=json-file \
--live-restore \
--default-ulimit nofile=1024:1024 \
--init-path /usr/libexec/docker/docker-init \
--userland-proxy-path /usr/libexec/docker/docker-proxy \
"
passwd: passwd:
users: users:
- name: core - name: core