diff --git a/README.md b/README.md index cc53e0520cd..5294f94dada 100644 --- a/README.md +++ b/README.md @@ -325,6 +325,8 @@ The following settings are optional and allow you to further configure your clus ``` allowed-unsafe-sysctls = ["net.core.somaxconn", "net.ipv4.ip_local_port_range"] ``` +* `settings.kubernetes.registry-qps`: The registry pull QPS. +* `settings.kubernetes.registry-burst`: The maximum size of bursty pulls. You can also optionally specify static pods for your node with the following settings. Static pods can be particularly useful when running in standalone mode. diff --git a/Release.toml b/Release.toml index 94c4815d055..b3a97fd056e 100644 --- a/Release.toml +++ b/Release.toml @@ -41,4 +41,5 @@ version = "1.0.8" "(1.0.8, 1.1.0)" = [ "migrate_v1.1.0_kubelet-server-tls-bootstrap.lz4", "migrate_v1.1.0_kubelet-cloud-provider.lz4", + "migrate_v1.1.0_kubelet-registry-qps-registry-burst.lz4", ] diff --git a/packages/kubernetes-1.16/kubelet-config b/packages/kubernetes-1.16/kubelet-config index 692395cbf0f..a68481e2146 100644 --- a/packages/kubernetes-1.16/kubelet-config +++ b/packages/kubernetes-1.16/kubelet-config @@ -40,6 +40,12 @@ evictionHard: {{~#if settings.kubernetes.allowed-unsafe-sysctls}} allowedUnsafeSysctls: {{settings.kubernetes.allowed-unsafe-sysctls}} {{~/if}} +{{~#if settings.kubernetes.registry-qps}} +registryPullQPS: {{settings.kubernetes.registry-qps}} +{{~/if}} +{{~#if settings.kubernetes.registry-burst}} +registryBurst: {{settings.kubernetes.registry-burst}} +{{~/if}} kubeReserved: cpu: "{{kube_reserve_cpu settings.kubernetes.kube-reserved.cpu}}" {{~#if settings.kubernetes.kube-reserved.memory}} diff --git a/packages/kubernetes-1.17/kubelet-config b/packages/kubernetes-1.17/kubelet-config index f977392433a..e2f92840368 100644 --- a/packages/kubernetes-1.17/kubelet-config +++ b/packages/kubernetes-1.17/kubelet-config @@ -40,6 +40,12 @@ evictionHard: {{~#if settings.kubernetes.allowed-unsafe-sysctls}} allowedUnsafeSysctls: {{settings.kubernetes.allowed-unsafe-sysctls}} {{~/if}} +{{~#if settings.kubernetes.registry-qps}} +registryPullQPS: {{settings.kubernetes.registry-qps}} +{{~/if}} +{{~#if settings.kubernetes.registry-burst}} +registryBurst: {{settings.kubernetes.registry-burst}} +{{~/if}} kubeReserved: cpu: "{{kube_reserve_cpu settings.kubernetes.kube-reserved.cpu}}" {{~#if settings.kubernetes.kube-reserved.memory}} diff --git a/packages/kubernetes-1.18/kubelet-config b/packages/kubernetes-1.18/kubelet-config index f977392433a..e2f92840368 100644 --- a/packages/kubernetes-1.18/kubelet-config +++ b/packages/kubernetes-1.18/kubelet-config @@ -40,6 +40,12 @@ evictionHard: {{~#if settings.kubernetes.allowed-unsafe-sysctls}} allowedUnsafeSysctls: {{settings.kubernetes.allowed-unsafe-sysctls}} {{~/if}} +{{~#if settings.kubernetes.registry-qps}} +registryPullQPS: {{settings.kubernetes.registry-qps}} +{{~/if}} +{{~#if settings.kubernetes.registry-burst}} +registryBurst: {{settings.kubernetes.registry-burst}} +{{~/if}} kubeReserved: cpu: "{{kube_reserve_cpu settings.kubernetes.kube-reserved.cpu}}" {{~#if settings.kubernetes.kube-reserved.memory}} diff --git a/packages/kubernetes-1.19/kubelet-config b/packages/kubernetes-1.19/kubelet-config index a6ed4b4d852..34ab31251d3 100644 --- a/packages/kubernetes-1.19/kubelet-config +++ b/packages/kubernetes-1.19/kubelet-config @@ -40,6 +40,12 @@ evictionHard: {{~#if settings.kubernetes.allowed-unsafe-sysctls}} allowedUnsafeSysctls: {{settings.kubernetes.allowed-unsafe-sysctls}} {{~/if}} +{{~#if settings.kubernetes.registry-qps}} +registryPullQPS: {{settings.kubernetes.registry-qps}} +{{~/if}} +{{~#if settings.kubernetes.registry-burst}} +registryBurst: {{settings.kubernetes.registry-burst}} +{{~/if}} kubeReserved: cpu: "{{kube_reserve_cpu settings.kubernetes.kube-reserved.cpu}}" {{~#if settings.kubernetes.kube-reserved.memory}} diff --git a/packages/kubernetes-1.20/kubelet-config b/packages/kubernetes-1.20/kubelet-config index 5e95633bd20..67c5a174600 100644 --- a/packages/kubernetes-1.20/kubelet-config +++ b/packages/kubernetes-1.20/kubelet-config @@ -40,6 +40,12 @@ evictionHard: {{~#if settings.kubernetes.allowed-unsafe-sysctls}} allowedUnsafeSysctls: {{settings.kubernetes.allowed-unsafe-sysctls}} {{~/if}} +{{~#if settings.kubernetes.registry-qps}} +registryPullQPS: {{settings.kubernetes.registry-qps}} +{{~/if}} +{{~#if settings.kubernetes.registry-burst}} +registryBurst: {{settings.kubernetes.registry-burst}} +{{~/if}} kubeReserved: cpu: "{{kube_reserve_cpu settings.kubernetes.kube-reserved.cpu}}" {{~#if settings.kubernetes.kube-reserved.memory}} diff --git a/sources/Cargo.lock b/sources/Cargo.lock index 532a13f9449..f8341c35a51 100644 --- a/sources/Cargo.lock +++ b/sources/Cargo.lock @@ -1744,6 +1744,13 @@ dependencies = [ "migration-helpers", ] +[[package]] +name = "kubelet-registry-qps-registry-burst" +version = "0.1.0" +dependencies = [ + "migration-helpers", +] + [[package]] name = "kubelet-server-tls-bootstrap" version = "0.1.0" diff --git a/sources/Cargo.toml b/sources/Cargo.toml index e937a9fc52f..76c2b45fa53 100644 --- a/sources/Cargo.toml +++ b/sources/Cargo.toml @@ -55,6 +55,7 @@ members = [ "api/migration/migrations/v1.0.8/add-bootstrap-containers", "api/migration/migrations/v1.1.0/kubelet-server-tls-bootstrap", "api/migration/migrations/v1.1.0/kubelet-cloud-provider", + "api/migration/migrations/v1.1.0/kubelet-registry-qps-registry-burst", "bottlerocket-release", diff --git a/sources/api/migration/migrations/v1.1.0/kubelet-registry-qps-registry-burst/Cargo.toml b/sources/api/migration/migrations/v1.1.0/kubelet-registry-qps-registry-burst/Cargo.toml new file mode 100644 index 00000000000..965099bcd48 --- /dev/null +++ b/sources/api/migration/migrations/v1.1.0/kubelet-registry-qps-registry-burst/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "kubelet-registry-qps-registry-burst" +version = "0.1.0" +authors = ["Tianhao Geng "] +license = "Apache-2.0 OR MIT" +edition = "2018" +publish = false +# Don't rebuild crate just because of changes to README. +exclude = ["README.md"] + +[dependencies] +migration-helpers = { path = "../../../migration-helpers" } diff --git a/sources/api/migration/migrations/v1.1.0/kubelet-registry-qps-registry-burst/src/main.rs b/sources/api/migration/migrations/v1.1.0/kubelet-registry-qps-registry-burst/src/main.rs new file mode 100644 index 00000000000..6fa188d680b --- /dev/null +++ b/sources/api/migration/migrations/v1.1.0/kubelet-registry-qps-registry-burst/src/main.rs @@ -0,0 +1,24 @@ +#![deny(rust_2018_idioms)] + +use migration_helpers::common_migrations::AddSettingsMigration; +use migration_helpers::{migrate, Result}; +use std::process; + +/// We added two new settings for configuring kubelet, `settings.kubernetes.registry-qps` +/// and `settings.kubernetes.registry-burst` +fn run() -> Result<()> { + migrate(AddSettingsMigration(&[ + "settings.kubernetes.registry-qps", + "settings.kubernetes.registry-burst", + ])) +} + +// Returning a Result from main makes it print a Debug representation of the error, but with Snafu +// we have nice Display representations of the error, so we wrap "main" (run) and print any error. +// https://github.com/shepmaster/snafu/issues/110 +fn main() { + if let Err(e) = run() { + eprintln!("{}", e); + process::exit(1); + } +} diff --git a/sources/models/src/lib.rs b/sources/models/src/lib.rs index ef2d395ea21..981eba9fa6d 100644 --- a/sources/models/src/lib.rs +++ b/sources/models/src/lib.rs @@ -134,6 +134,8 @@ struct KubernetesSettings { allowed_unsafe_sysctls: Vec, server_tls_bootstrap: bool, cloud_provider: KubernetesCloudProvider, + registry_qps: i32, + registry_burst: i32, // Settings where we generate a value based on the runtime environment. The user can specify a // value to override the generated one, but typically would not.