Перейти к содержимому

За что отвечает компонент kubelet

  • автор:

Reference Documentation

The kubelet is the primary “node agent” that runs on each node. The kubelet works in terms of a PodSpec. A PodSpec is a YAML or JSON object that describes a pod. The kubelet takes a set of PodSpecs that are provided through various mechanisms (primarily through the apiserver) and ensures that the containers described in those PodSpecs are running and healthy.

Other than from an PodSpec from the apiserver, there are three ways that a container manifest can be provided to the Kubelet.

File: Path passed as a flag on the command line. This file is rechecked every 20 seconds (configurable with a flag).

HTTP endpoint: HTTP endpoint passed as a parameter on the command line. This endpoint is checked every 20 seconds (also configurable with a flag).

HTTP server: The kubelet can also listen for HTTP and respond to a simple API (underspec’d currently) to submit a new manifest.

Архитектура Kubernetes

В этой главе мы рассмотрим архитектуру Kubernetes, различные компоненты master (главный узел) и worker nodes (рабочий узлов), управление состоянием кластера с помощью etcd и требования к настройке сети. Мы также поговорим о спецификации сети Container Network Interface (CNI), которая используется Kubernetes.

Если рассматривать Kubernetes на “высоком” уровне, то он имеет следующие компоненты:

  • Один или несколько главных узлов (master)
  • Один или несколько рабочих узлов (worket node)
  • Распределенное хранилище ключей и значений, например etcd.

Master Node

Главный узел (master) отвечает за управление кластером Kubernetes и является точкой входа. Мы можем связаться с главным узлом через CLI, GUI (Dashboard), или через API.

Для обеспечения отказоустойчивости в кластере может быть несколько главных узлов. Если у нас есть более одного главного узла, они будут находиться в режиме HA (High Availability), и только один из них будет ведущим, выполняющим все операции. Остальные главные узлы будут последовательными.

Для управления состоянием кластера Kubernetes использует etcd , и все главные узлы подключаются к нему. etcd — это распределенное хранилище ключей и значений. Хранилище ключ-значение может быть частью главного узла. Он также может быть настроен извне, в этом случае главные узлы будут подключаться к нему.

Компоненты главного узла

Главный узел имеет следующие компоненты:

  • API server
  • Scheduler
  • Controller manager
  • etcd

API Server

Все административные задачи выполняются через сервер API на главном узле. Пользователь / администратор отправляет команды REST на сервер API, который затем проверяет и обрабатывает запросы. После выполнения запросов результирующее состояние кластера сохраняется в распределенном хранилище ключ-значение.

Scheduler

Как следует из названия, планировщик планирует работу на разных рабочих узлах. Планировщик содержит сведения об использовании ресурсов для каждого рабочего узла. Он также знает об ограничениях, которые могут быть установлены пользователями/администраторами, например о планировании работы на узле с меткой disk==ssd . Перед планированием работы, планировщик также учитывает качество обслуживания требований, сведения населенного пункта, близость, анти-аффинити, и т. д. Планировщик планирует работу с точки зрения модулей и служб.

Controller Manager

Диспетчер контроллера управляет различными непрерывными циклами управления, которые регулируют состояние кластера Kubernetes. Каждый из этих циклов управления знает о желаемом состоянии объектов, которыми он управляет,и отслеживает их текущее состояние через сервер API. В цикле управления, если текущее состояние управляемых им объектов не соответствует требуемому состоянию, цикл управления выполняет корректирующие действия, чтобы убедиться, что текущее состояние совпадает с требуемым состоянием.

Как обсуждалось ранее, etcd — это распределенное хранилище ключ-значение, которое используется для хранения состояния кластера. Он может входить в состав мастера Kubernetes или настраиваться извне, в этом случае к нему будут подключаться главные узлы.

Worker node

Рабочий узел (node) — это сервер (виртуальная машина, физический сервер и т. д.), который запускает приложения с помощью Pod и управляется главным узлом. Pods планируются на рабочих узлах, которые имеют необходимые инструменты для их запуска и подключения. Pod — это единица планирования в Kubernetes. Это логическая коллекция одного или нескольких контейнеров, которые всегда планируются вместе.

Рабочий узел имеет следующие компоненты:

  • Container runtime
  • kubelet
  • kube-proxy

Container runtime

Для запуска и управления жизненным циклом контейнера необходима среда выполнения контейнера на рабочем узле. Некоторые примеры сред выполнения контейнеров:

  • containerd
  • rkt
  • lxd

Docker также называют средой выполнения контейнера, но если быть точным, Docker — это платформа, которая использует containerd в качестве среды выполнения контейнера.

kubelet

Kubelet — это агент, который работает на каждом рабочем узле (worker node) и взаимодействует с главным узлом (master). Он получает определение пода с помощью различных средств (в первую очередь, через сервер API), и запускает контейнеры, связанные с подом. Он также постоянно проверяет, что контейнеры которые являются частью подов, работают корректно и без сбоев.

Kubelet подключается к среде выполнения контейнера с помощью Container Runtime Interface (CRI). Интерфейс среды выполнения контейнера состоит из буферов протоколов, gRPC AP и библиотек.

Как показано выше, kubelet (клиент grpc) подключается к оболочке совместимости CRI (сервер grpc) для выполнения операций с контейнерами и образами. CRI реализует два сервиса: ImageService и RuntimeService. ImageService отвечает за все операции, связанные с образом, в то время как RuntimeService отвечает за все поды и связанные с контейнером операции.

Среды выполнения контейнеров раньше были жестко запрограммированы в Kubernetes, но с развитием CRI теперь в Kubernetes можно использовать другие среды выполнения контейнеров без необходимости перекомпиляции. Любая среда выполнения контейнера, реализующая CRI, может использоваться Kubernetes для управления модулями, контейнерами и образами контейнеров.

kubelet: CRI shims

  • dockershim

С помощью dockershim контейнеры создаются с помощью Docker, установленного на рабочих узлах. Внутри Docker использует containerd для создания контейнеров и управления ими.

  • cri-containerd

С cri-containerd, мы можем напрямую использовать меньшие потомство Docker containerd для создания и управления контейнерами.

  • CRI-O

CRI-O позволяет, используя любой Open Container Initiative (OCI), совместимых сред с Kubernetes. Во время создания этого курса CRI-O поддерживал runC и lear Containers в качестве сред выполнения контейнеров. Однако, в принципе, любая OCI-совместимая среда выполнения может быть подключена.

kube-proxy

Вместо прямого подключения к модулям для доступа к приложениям мы используем логическую конструкцию Service в качестве конечной точки подключения. Service группирует связанные модули и при доступе балансирует нагрузку на них.

kube-proxy — это сетевой прокси, который работает на каждом рабочем узле и прослушивает сервер API для каждого создания/удаления конечной точки службы. Для каждой конечной точки службы kube-proxy настраивает маршруты таким образом, чтобы можно было добраться до нее.

State Management with etcd

Kubernetes использует etcd для хранения состояния кластера. etcd-это распределенное хранилище ключей и значений, основанное на алгоритме консенсуса плотов. “Плот” позволяет коллекции машин работать, как единая группа, которая может пережить отказы некоторых из ее членов. В любой момент времени один из узлов в группе будет мастером, а остальные — последователями. Любой узел можно рассматривать, как главный.

etcd написан на языке программирования Go. В Kubernetes, помимо хранения состояния кластера, etcd также используется для хранения сведений о конфигурации, таких как подсети, карты конфигурации, секреты и т.д.

Network Setup

Чтобы иметь полностью функциональный кластер Kubernetes, необходимо убедиться в следующем:

  • Каждому поду присваивается уникальный IP-адрес
  • Контейнеры пода могут взаимодействовать друг с другом
  • Под может взаимодействовать с другими подом в кластере
  • Приложение, развернутое в поде, доступно из Интернета.

Назначение уникального IP-адреса каждому модулю

В Kubernetes каждый модуль получает уникальный IP-адрес. Для контейнерной сети существует две основные спецификации:

  • Container Network Model (CNM), by Docker
  • Container Network Interface (CNI), by CoreOS

Kubernetes использует CNI для назначения IP-адреса каждому поду.

Среда выполнения контейнера разгружает назначение IP к CNI, который соединяется с базовым настроенным плагином, как мост или MACvlan, для получения IP-адреса. Как только IP-адрес дается соответствующим плагином, CNI передает его назад к запрошенной контейнерной среде выполнения.

Связь контейнер-контейнер внутри пода

С помощью базовой операционной системы все среды выполнения контейнера обычно создают изолированную сетевую сущность для каждого запускаемого контейнера. В Linux эта сущность называется сетевым пространством имен (network namespace). Эти сетевые пространства имен могут совместно использоваться контейнерами или операционной системой узла.

Внутри пода контейнеры совместно используют сетевые пространства имен, чтобы они могли достигать друг друга через localhost.

Pod-to-Pod связь внутри ноды

В кластерной среде поды можно запланировать на любом узле. Мы должны убедиться, что поды могут взаимодействовать между нодами, и все ноды должны быть в состоянии достичь любого пода. Kubernetes также ставит условие, что не должно быть никакого преобразования сетевых адресов (NAT) при выполнении Pod-to-Pod связи между хостами. Мы можем достичь этого с помощью:

  • Маршрутизируемые поды и ноды, использующие базовую физическую инфраструктуру, например Google Kubernetes Engine.
  • Используя програмное обеспечение Flannel , Weave , Calico

Более детально описано в документации .

Связь между внешним миром и подами

Предоставляя наши сервисы внешнему миру с помощью kube-proxy, мы можем получить доступ к нашим приложениям извне кластера.

What even is a kubelet?

Kubernetes is Google’s open source, container-focused cluster management thing. I see it as their attempt to tell everyone how they think containers and clusters fit together. The Kubernetes documentation is quite good, but it’s divided up in a way that makes it great as a reference. I want to understand both the concepts Kubernetes introduces, and the components that make up a Kubernetes cluster, and I want to learn by doing. I’m planning to build up a cluster from scratch, documenting the moving parts and concepts as I go.

I’ll start of with a look at the kubelet, which is the lowest level component in Kubernetes. It’s responsible for what’s running on an individual machine. You can think of it as a process watcher like supervisord, but focused on running containers. It has one job: given a set of containers to run, make sure they are all running.

Kubelets run pods

The unit of execution that Kubernetes works with is the pod. A pod is a collection of containers that share some resources: they have a single IP, and can share volumes. For example, a web server pod could have a container for the server itself, and a container that tails the logs and ships them off to your logging or metrics infrastructure.

Pods are defined by a JSON or YAML file called a pod manifest. A simple one with one container looks like this:

The container’s image is a Docker image name. The containerPort exposes that port from the nginx container so we can connect to the nginx server at the pod’s IP. By default, the entrypoint defined in the image is what will run; in the nginx image, that’s the nginx server.

Let’s add a log truncator container to this pod. This will take care of the nginx access log, truncating it every 10 seconds—who needs those anyway? To do this, we’ll need nginx to write its logs to a volume that can be shared to the log truncator. We’ll set this volume up as an emptyDir volume: it will start off as an empty directory when the pod starts, and be cleaned up when the pod exits, but will persist across restarts of the component containers.

Here’s the updated pod manifest:

We’ve added an emptyDir volume named nginx-logs . nginx writes its logs at /var/log/nginx, so we mount that volume at that location in the nginx container. For the log-truncator container, we’re using the busybox image. It’s a tiny Linux command line environment, which provides everything we need for a robust log truncator. Inside that container, we’ve mounted the nginx-logs volume at /logdir . We set its command and args up to run a shell loop that truncates the log file every 10 seconds.

Now we’ve got this paragon of production infrastructure configured, it’s time to run it!

Running a pod

There are a few ways the kubelet finds pods to run:

  • a directory it polls for new pod manifests to run
  • a URL it polls and downloads pod manifests from
  • from the Kubernetes API server

The first of these is definitely the simplest: to run a pod, we just put a manifest file in the watched directory. Every 20 seconds, the kubelet checks for changes in the directory, and adjusts what it’s running based on what it finds. This means both launching pods that are added, as well as killing ones that are removed.

The kubelet is such a low level component with such limited responsibilities that we can actually use it independently of Kubernetes—all we have to do is not tell it about a Kubernetes API server. The kubelet supports Docker and rkt as continer runtimes. The default is Docker, and that’s what we’ll use in the examples here. You’ll need a machine with Docker installed and running to try this out.

First off, let’s get the kubelet binary from Google.

If you run ./kubelet —help , you’ll get an overwhelming list of options. For what we’re about to do, we only need one of them though: the —config option. This is the directory that the kubelet will watch for pod manifests to run. We’ll create a directory for this, and then start the kubelet. You might need to run it under sudo so that it can talk to the docker daemon.

Now let’s stick the example nginx pod manifest from above in an nginx.yaml file, and then drop it in the manifests directory. After a short wait, the kubelet will notice the file and fire up the pod.

We can check the list of running containers with docker ps :

There are three containers running: the nginx and log-truncator containers we defined, as well as the pod infrastructure container. 1 The infrastructure container is where the kubelet puts all the resources that are shared across containers in the pod. This includes the IP, as well as any volumes we’ve defined. We can poke around with docker inspect to see how they’re configured and hooked up to each other:

The nginx and log trunctator containers have no IP, but the infrastructure container does. Taking a closer look at at the containers we defined, we can see their NetworkMode is set to use the infrastructure container’s network:

Since we exposed port 80 from the nginx container with containerPort , we can connect to the nginx server at port 80 at the pod’s IP:

It really is running! And just to check the log truncator is doing what we expect, let’s watch the log file and make some requests with

while we make a few requests. The log lines accumulate for a bit, but then they all disappear: the truncator doing its job!

Kubelet introspection

The kubelet also has an internal HTTP server. We won’t go into it in detail, except to say that it serves a read-only view at port 10255. There’s a health check endpoint at /healthz :

There are also a few status endpoints. For example, you can get a list of running pods at /pods :

You can also get specs of the machine the kubelet is running on at /spec/ :

Tearing things down

Finally, we can clean up after ourselves. Just deleting the nginx pod manifest will result in the kubelet stopping the containers.

We’ve seen that while the kubelet is a part of Kubernetes, at heart it’s a container-oriented process watcher. You can use it in isolation to manage containers running on a single host. In fact, the Kubernetes getting started guides for Docker run the kubelet under Docker and use the kubelet to manage the Kubernetes master components. In a later post, we’ll do something similar!

The pause command that the infrastructure container runs is a 129 byte ELF binary that just calls the pause system call, and exits when a signal is received. This keeps the infrastructure container around until the kubelet brings it down. It’s pretty cool, check the source! ↩

kubelet

The kubelet is the primary «node agent» that runs on each node. It can register the node with the apiserver using one of: the hostname; a flag to override the hostname; or specific logic for a cloud provider.

The kubelet works in terms of a PodSpec. A PodSpec is a YAML or JSON object that describes a pod. The kubelet takes a set of PodSpecs that are provided through various mechanisms (primarily through the apiserver) and ensures that the containers described in those PodSpecs are running and healthy. The kubelet doesn’t manage containers which were not created by Kubernetes.

Other than from a PodSpec from the apiserver, there are two ways that a container manifest can be provided to the Kubelet.

  • File: Path passed as a flag on the command line. Files under this path will be monitored periodically for updates. The monitoring period is 20s by default and is configurable via a flag.
  • HTTP endpoint: HTTP endpoint passed as a parameter on the command line. This endpoint is checked every 20 seconds (also configurable with a flag).

Options

—address string Default: 0.0.0.0
The IP address for the Kubelet to serve on (set to 0.0.0.0 or :: for listening in all interfaces and IP families) (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—allowed-unsafe-sysctls strings
Comma-separated whitelist of unsafe sysctls or unsafe sysctl patterns (ending in * ). Use these at your own risk. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—anonymous-auth Default: true
Enables anonymous requests to the Kubelet server. Requests that are not rejected by another authentication method are treated as anonymous requests. Anonymous requests have a username of system:anonymous , and a group name of system:unauthenticated . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—authentication-token-webhook
Use the TokenReview API to determine authentication for bearer tokens. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—authentication-token-webhook-cache-ttl duration Default: 2m0s
The duration to cache responses from the webhook token authenticator. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—authorization-mode string Default: AlwaysAllow
Authorization mode for Kubelet server. Valid options are AlwaysAllow or Webhook. Webhook mode uses the SubjectAccessReview API to determine authorization. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—authorization-webhook-cache-authorized-ttl duration Default: 5m0s
The duration to cache ‘authorized’ responses from the webhook authorizer. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—authorization-webhook-cache-unauthorized-ttl duration Default: 30s
The duration to cache ‘unauthorized’ responses from the webhook authorizer. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—azure-container-registry-config string
Path to the file containing Azure container registry configuration information.
—bootstrap-kubeconfig string
Path to a kubeconfig file that will be used to get client certificate for kubelet. If the file specified by —kubeconfig does not exist, the bootstrap kubeconfig is used to request a client certificate from the API server. On success, a kubeconfig file referencing the generated client certificate and key is written to the path specified by —kubeconfig . The client certificate and key file will be stored in the directory pointed by —cert-dir .
—cert-dir string Default: /var/lib/kubelet/pki
The directory where the TLS certs are located. If —tls-cert-file and —tls-private-key-file are provided, this flag will be ignored.
—cgroup-driver string Default: cgroupfs
Driver that the kubelet uses to manipulate cgroups on the host. Possible values: cgroupfs , systemd . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cgroup-root string Default: »
Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: », which means use the container runtime default. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cgroups-per-qos Default: true
Enable creation of QoS cgroup hierarchy, if true top level QoS and pod cgroups are created. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—client-ca-file string
If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cloud-config string
The path to the cloud provider configuration file. Empty string for no configuration file. (DEPRECATED: will be removed in 1.24 or later, in favor of removing cloud providers code from kubelet.)
—cloud-provider string
The provider for cloud services. Set to empty string for running with no cloud provider. If set, the cloud provider determines the name of the node (consult cloud provider documentation to determine if and how the hostname is used). (DEPRECATED: will be removed in 1.24 or later, in favor of removing cloud provider code from Kubelet.)
—cluster-dns strings
Comma-separated list of DNS server IP address. This value is used for containers DNS server in case of Pods with «dnsPolicy=ClusterFirst».
Note: all DNS servers appearing in the list MUST serve the same set of records otherwise name resolution within the cluster may not work correctly. There is no guarantee as to which DNS server may be contacted for name resolution. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cluster-domain string
Domain for this cluster. If set, kubelet will configure all containers to search this domain in addition to the host’s search domains (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—config string
The Kubelet will load its initial configuration from this file. The path may be absolute or relative; relative paths start at the Kubelet’s current working directory. Omit this flag to use the built-in default configuration values. Command-line flags override configuration from this file.
—container-log-max-files int32 Default: 5
<Warning: Beta feature> Set the maximum number of container log files that can be present for a container. The number must be >= 2. This flag can only be used with —container-runtime=remote . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—container-log-max-size string Default: 10Mi
<Warning: Beta feature> Set the maximum size (e.g. 10Mi ) of container log file before it is rotated. This flag can only be used with —container-runtime=remote . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—container-runtime string Default: remote
The container runtime to use. Possible values: docker , remote . (DEPRECATED: will be removed in 1.27 as the only valid value is ‘remote’)
—container-runtime-endpoint string
The endpoint of remote runtime service. Unix Domain Sockets are supported on Linux, while npipe and tcp endpoints are supported on windows. Examples: unix:///path/to/runtime.sock , npipe:////./pipe/runtime .
—contention-profiling
Enable lock contention profiling, if profiling is enabled (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cpu-cfs-quota Default: true
Enable CPU CFS quota enforcement for containers that specify CPU limits (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cpu-cfs-quota-period duration Default: 100ms
Sets CPU CFS quota period value, cpu.cfs_period_us , defaults to Linux Kernel default. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cpu-manager-policy string Default: none
CPU Manager policy to use. Possible values: none , static . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cpu-manager-policy-options string
A set of key=value CPU Manager policy options to use, to fine tune their behaviour. If not supplied, keep the default behaviour. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—cpu-manager-reconcile-period duration Default: 10s
<Warning: Alpha feature> CPU Manager reconciliation period. Examples: 10s , or 1m . If not supplied, defaults to node status update frequency. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—enable-controller-attach-detach Default: true
Enables the Attach/Detach controller to manage attachment/detachment of volumes scheduled to this node, and disables kubelet from executing any attach/detach operations. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—enable-debugging-handlers Default: true
Enables server endpoints for log collection and local running of containers and commands. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—enable-server Default: true
Enable the Kubelet’s server. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—enforce-node-allocatable strings Default: pods
A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptable options are none , pods , system-reserved , and kube-reserved . If the latter two options are specified, —system-reserved-cgroup and —kube-reserved-cgroup must also be set, respectively. If none is specified, no additional options should be set. See here for more details. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—event-burst int32 Default: 10
Maximum size of a bursty event records, temporarily allows event records to burst to this number, while still not exceeding —event-qps . The number must be >= 0. If 0 will use default burst (10). (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—event-qps int32 Default: 5
QPS to limit event creations. The number must be >= 0. If 0 will use default QPS (5). (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—eviction-hard string Default: imagefs.available
A set of eviction thresholds (e.g. memory.available ) that if met would trigger a pod eviction. On a Linux node, the default value also includes nodefs.inodesFree . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—eviction-max-pod-grace-period int32
Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. If negative, defer to pod specified value. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—eviction-minimum-reclaim string
A set of minimum reclaims (e.g. imagefs.available=2Gi ) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—eviction-pressure-transition-period duration Default: 5m0s
Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—eviction-soft string
A set of eviction thresholds (e.g. memory.available ) that if met over a corresponding grace period would trigger a pod eviction. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—eviction-soft-grace-period string
A set of eviction grace periods (e.g. memory.available=1m30s ) that correspond to how long a soft eviction threshold must hold before triggering a pod eviction. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—exit-on-lock-contention
Whether kubelet should exit upon lock-file contention.
—experimental-allocatable-ignore-eviction Default: false
When set to true , hard eviction thresholds will be ignored while calculating node allocatable. See here for more details. (DEPRECATED: will be removed in 1.24 or later)
—experimental-mounter-path string Default: mount
[Experimental] Path of mounter binary. Leave empty to use the default mount . (DEPRECATED: will be removed in 1.24 or later, in favor of using CSI.)
—fail-swap-on Default: true
Makes the Kubelet fail to start if swap is enabled on the node. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—feature-gates <A list of ‘key=true/false’ pairs>
A set of key=value pairs that describe feature gates for alpha/experimental features. Options are:
APIListChunking=true|false (BETA — default=true)
APIPriorityAndFairness=true|false (BETA — default=true)
APIResponseCompression=true|false (BETA — default=true)
APISelfSubjectReview=true|false (ALPHA — default=false)
APIServerIdentity=true|false (BETA — default=true)
APIServerTracing=true|false (ALPHA — default=false)
AggregatedDiscoveryEndpoint=true|false (ALPHA — default=false)
AllAlpha=true|false (ALPHA — default=false)
AllBeta=true|false (BETA — default=false)
AnyVolumeDataSource=true|false (BETA — default=true)
AppArmor=true|false (BETA — default=true)
CPUManagerPolicyAlphaOptions=true|false (ALPHA — default=false)
CPUManagerPolicyBetaOptions=true|false (BETA — default=true)
CPUManagerPolicyOptions=true|false (BETA — default=true)
CSIMigrationPortworx=true|false (BETA — default=false)
CSIMigrationRBD=true|false (ALPHA — default=false)
CSINodeExpandSecret=true|false (ALPHA — default=false)
CSIVolumeHealth=true|false (ALPHA — default=false)
ComponentSLIs=true|false (ALPHA — default=false)
ContainerCheckpoint=true|false (ALPHA — default=false)
ContextualLogging=true|false (ALPHA — default=false)
CronJobTimeZone=true|false (BETA — default=true)
CrossNamespaceVolumeDataSource=true|false (ALPHA — default=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA — default=false)
CustomResourceValidationExpressions=true|false (BETA — default=true)
DisableCloudProviders=true|false (ALPHA — default=false)
DisableKubeletCloudCredentialProviders=true|false (ALPHA — default=false)
DownwardAPIHugePages=true|false (BETA — default=true)
DynamicResourceAllocation=true|false (ALPHA — default=false)
EventedPLEG=true|false (ALPHA — default=false)
ExpandedDNSConfig=true|false (BETA — default=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA — default=false)
GRPCContainerProbe=true|false (BETA — default=true)
GracefulNodeShutdown=true|false (BETA — default=true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA — default=true)
HPAContainerMetrics=true|false (ALPHA — default=false)
HPAScaleToZero=true|false (ALPHA — default=false)
HonorPVReclaimPolicy=true|false (ALPHA — default=false)
IPTablesOwnershipCleanup=true|false (ALPHA — default=false)
InTreePluginAWSUnregister=true|false (ALPHA — default=false)
InTreePluginAzureDiskUnregister=true|false (ALPHA — default=false)
InTreePluginAzureFileUnregister=true|false (ALPHA — default=false)
InTreePluginGCEUnregister=true|false (ALPHA — default=false)
InTreePluginOpenStackUnregister=true|false (ALPHA — default=false)
InTreePluginPortworxUnregister=true|false (ALPHA — default=false)
InTreePluginRBDUnregister=true|false (ALPHA — default=false)
InTreePluginvSphereUnregister=true|false (ALPHA — default=false)
JobMutableNodeSchedulingDirectives=true|false (BETA — default=true)
JobPodFailurePolicy=true|false (BETA — default=true)
JobReadyPods=true|false (BETA — default=true)
KMSv2=true|false (ALPHA — default=false)
KubeletInUserNamespace=true|false (ALPHA — default=false)
KubeletPodResources=true|false (BETA — default=true)
KubeletPodResourcesGetAllocatable=true|false (BETA — default=true)
KubeletTracing=true|false (ALPHA — default=false)
LegacyServiceAccountTokenTracking=true|false (ALPHA — default=false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA — default=false)
LogarithmicScaleDown=true|false (BETA — default=true)
LoggingAlphaOptions=true|false (ALPHA — default=false)
LoggingBetaOptions=true|false (BETA — default=true)
MatchLabelKeysInPodTopologySpread=true|false (ALPHA — default=false)
MaxUnavailableStatefulSet=true|false (ALPHA — default=false)
MemoryManager=true|false (BETA — default=true)
MemoryQoS=true|false (ALPHA — default=false)
MinDomainsInPodTopologySpread=true|false (BETA — default=false)
MinimizeIPTablesRestore=true|false (ALPHA — default=false)
MultiCIDRRangeAllocator=true|false (ALPHA — default=false)
NetworkPolicyStatus=true|false (ALPHA — default=false)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA — default=true)
NodeOutOfServiceVolumeDetach=true|false (BETA — default=true)
NodeSwap=true|false (ALPHA — default=false)
OpenAPIEnums=true|false (BETA — default=true)
OpenAPIV3=true|false (BETA — default=true)
PDBUnhealthyPodEvictionPolicy=true|false (ALPHA — default=false)
PodAndContainerStatsFromCRI=true|false (ALPHA — default=false)
PodDeletionCost=true|false (BETA — default=true)
PodDisruptionConditions=true|false (BETA — default=true)
PodHasNetworkCondition=true|false (ALPHA — default=false)
PodSchedulingReadiness=true|false (ALPHA — default=false)
ProbeTerminationGracePeriod=true|false (BETA — default=true)
ProcMountType=true|false (ALPHA — default=false)
ProxyTerminatingEndpoints=true|false (BETA — default=true)
QOSReserved=true|false (ALPHA — default=false)
ReadWriteOncePod=true|false (ALPHA — default=false)
RecoverVolumeExpansionFailure=true|false (ALPHA — default=false)
RemainingItemCount=true|false (BETA — default=true)
RetroactiveDefaultStorageClass=true|false (BETA — default=true)
RotateKubeletServerCertificate=true|false (BETA — default=true)
SELinuxMountReadWriteOncePod=true|false (ALPHA — default=false)
SeccompDefault=true|false (BETA — default=true)
ServerSideFieldValidation=true|false (BETA — default=true)
SizeMemoryBackedVolumes=true|false (BETA — default=true)
StatefulSetAutoDeletePVC=true|false (ALPHA — default=false)
StatefulSetStartOrdinal=true|false (ALPHA — default=false)
StorageVersionAPI=true|false (ALPHA — default=false)
StorageVersionHash=true|false (BETA — default=true)
TopologyAwareHints=true|false (BETA — default=true)
TopologyManager=true|false (BETA — default=true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA — default=false)
TopologyManagerPolicyBetaOptions=true|false (BETA — default=false)
TopologyManagerPolicyOptions=true|false (ALPHA — default=false)
UserNamespacesStatelessPodsSupport=true|false (ALPHA — default=false)
ValidatingAdmissionPolicy=true|false (ALPHA — default=false)
VolumeCapacityPriority=true|false (ALPHA — default=false)
WinDSR=true|false (ALPHA — default=false)
WinOverlay=true|false (BETA — default=true)
WindowsHostNetwork=true|false (ALPHA — default=true)
(DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—file-check-frequency duration Default: 20s
Duration between checking config files for new data. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—hairpin-mode string Default: promiscuous-bridge
How should the kubelet setup hairpin NAT. This allows endpoints of a Service to load balance back to themselves if they should try to access their own Service. Valid values are promiscuous-bridge , hairpin-veth and none . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—healthz-bind-address string Default: 127.0.0.1
The IP address for the healthz server to serve on (set to 0.0.0.0 or :: for listening in all interfaces and IP families). (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—healthz-port int32 Default: 10248
The port of the localhost healthz endpoint (set to 0 to disable). (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
-h, —help
help for kubelet
—hostname-override string
If non-empty, will use this string as identification instead of the actual hostname. If —cloud-provider is set, the cloud provider determines the name of the node (consult cloud provider documentation to determine if and how the hostname is used).
—http-check-frequency duration Default: 20s
Duration between checking HTTP for new data. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—image-credential-provider-bin-dir string
The path to the directory where credential provider plugin binaries are located.
—image-credential-provider-config string
The path to the credential provider plugin config file.
—image-gc-high-threshold int32 Default: 85
The percent of disk usage after which image garbage collection is always run. Values must be within the range [0, 100], To disable image garbage collection, set to 100. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—image-gc-low-threshold int32 Default: 80
The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. Values must be within the range [0, 100] and should not be larger than that of —image-gc-high-threshold . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—image-service-endpoint string
[Experimental] The endpoint of remote image service. If not specified, it will be the same with —container-runtime-endpoint by default. Unix Domain Socket are supported on Linux, while npipe and TCP endpoints are supported on Windows. Examples: unix:///var/run/dockershim.sock , npipe:////./pipe/dockershim
—iptables-drop-bit int32 Default: 15
The bit of the fwmark space to mark packets for dropping. Must be within the range [0, 31]. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—iptables-masquerade-bit int32 Default: 14
The bit of the fwmark space to mark packets for SNAT. Must be within the range [0, 31]. Please match this parameter with corresponding parameter in kube-proxy . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—keep-terminated-pod-volumes
Keep terminated pod volumes mounted to the node after the pod terminates. Can be useful for debugging volume related issues. (DEPRECATED: will be removed in a future version)
—kernel-memcg-notification
If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—kube-api-burst int32 Default: 10
Burst to use while talking with kubernetes API server. The number must be >= 0. If 0 will use default burst (10). (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—kube-api-content-type string Default: application/vnd.kubernetes.protobuf
Content type of requests sent to apiserver. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—kube-api-qps int32 Default: 5
QPS to use while talking with kubernetes API server. The number must be >= 0. If 0 will use default QPS (5). Doesn’t cover events and node heartbeat apis which rate limiting is controlled by a different set of flags. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—kube-reserved string Default: <None>
A set of <resource name>=<resource quantity> (e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid=’100′ ) pairs that describe resources reserved for kubernetes system components. Currently cpu , memory and local ephemeral-storage for root file system are supported. See here for more detail. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—kube-reserved-cgroup string Default: »
Absolute name of the top level cgroup that is used to manage kubernetes components for which compute resources were reserved via —kube-reserved flag. Ex. /kube-reserved . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—kubeconfig string
Path to a kubeconfig file, specifying how to connect to the API server. Providing —kubeconfig enables API server mode, omitting —kubeconfig enables standalone mode.
—kubelet-cgroups string
Optional absolute name of cgroups to create and run the Kubelet in. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—local-storage-capacity-isolation> Default: true
If true, local ephemeral storage isolation is enabled. Otherwise, local storage isolation feature will be disabled. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ for more information.)
—lock-file string
<Warning: Alpha feature> The path to file for kubelet to use as a lock file.
—log-flush-frequency duration Default: 5s
Maximum number of seconds between log flushes.
—log-json-info-buffer-size string Default: ‘0’
[Alpha] In JSON format with split output streams, the info messages can be buffered for a while to increase performance. The default value of zero bytes disables buffering. The size can be specified as number of bytes (512), multiples of 1000 (1K), multiples of 1024 (2Ki), or powers of those (3M, 4G, 5Mi, 6Gi). Enable the LoggingAlphaOptions feature gate to use this. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—log-json-split-stream
[Alpha] In JSON format, write error messages to stderr and info messages to stdout. The default is to write a single stream to stdout. Enable the LoggingAlphaOptions feature gate to use this. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—logging-format string Default: text
Sets the log format. Permitted formats: text , json (gated by LoggingBetaOptions ). (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—make-iptables-util-chains Default: true
If true, kubelet will ensure iptables utility rules are present on host. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—manifest-url string
URL for accessing additional Pod specifications to run (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—manifest-url-header string
Comma-separated list of HTTP headers to use when accessing the URL provided to —manifest-url . Multiple headers with the same name will be added in the same order provided. This flag can be repeatedly invoked. For example: —manifest-url-header ‘a:hello,b:again,c:world’ —manifest-url-header ‘b:beautiful’ (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—master-service-namespace string Default: default
The namespace from which the kubernetes master services should be injected into pods. (DEPRECATED: This flag will be removed in a future version.)
—max-open-files int Default: 1000000
Number of files that can be opened by Kubelet process. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—max-pods int32 Default: 110
Number of Pods that can run on this Kubelet. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—maximum-dead-containers int32 Default: -1
Maximum number of old instances of containers to retain globally. Each container takes up some disk space. To disable, set to a negative number. (DEPRECATED: Use —eviction-hard or —eviction-soft instead. Will be removed in a future version.)
—maximum-dead-containers-per-container int32 Default: 1
Maximum number of old instances to retain per container. Each container takes up some disk space. (DEPRECATED: Use —eviction-hard or —eviction-soft instead. Will be removed in a future version.)
—memory-manager-policy string Default: None
Memory Manager policy to use. Possible values: ‘None’ , ‘Static’ . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—minimum-container-ttl-duration duration
Minimum age for a finished container before it is garbage collected. Examples: ‘300ms’ , ’10s’ or ‘2h45m’ (DEPRECATED: Use —eviction-hard or —eviction-soft instead. Will be removed in a future version.)
—minimum-image-ttl-duration duration Default: 2m0s
Minimum age for an unused image before it is garbage collected. Examples: ‘300ms’ , ’10s’ or ‘2h45m’ . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—node-ip string
IP address (or comma-separated dual-stack IP addresses) of the node. If unset, kubelet will use the node’s default IPv4 address, if any, or its default IPv6 address if it has no IPv4 addresses. You can pass ‘::’ to make it prefer the default IPv6 address rather than the default IPv4 address.
—node-labels <key=value pairs>
<Warning: Alpha feature>Labels to add when registering the node in the cluster. Labels must be key=value pairs separated by ‘,’ . Labels in the ‘kubernetes.io’ namespace must begin with an allowed prefix ( ‘kubelet.kubernetes.io’ , ‘node.kubernetes.io’ ) or be in the specifically allowed set ( ‘beta.kubernetes.io/arch’ , ‘beta.kubernetes.io/instance-type’ , ‘beta.kubernetes.io/os’ , ‘failure-domain.beta.kubernetes.io/region’ , ‘failure-domain.beta.kubernetes.io/zone’ , ‘kubernetes.io/arch’ , ‘kubernetes.io/hostname’ , ‘kubernetes.io/os’ , ‘node.kubernetes.io/instance-type’ , ‘topology.kubernetes.io/region’ , ‘topology.kubernetes.io/zone’ )
—node-status-max-images int32 Default: 50
The maximum number of images to report in node.status.images . If -1 is specified, no cap will be applied. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—node-status-update-frequency duration Default: 10s
Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in Node controller. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—oom-score-adj int32 Default: -999
The oom-score-adj value for kubelet process. Values must be within the range [-1000, 1000]. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—pod-cidr string
The CIDR to use for pod IP addresses, only used in standalone mode. In cluster mode, this is obtained from the master. For IPv6, the maximum number of IP’s allocated is 65536 (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—pod-infra-container-image string Default: registry.k8s.io/pause:3.9
Specified image will not be pruned by the image garbage collector. CRI implementations have their own configuration to set this image. (DEPRECATED: will be removed in 1.27. Image garbage collector will get sandbox image information from CRI.)
—pod-manifest-path string
Path to the directory containing static pod files to run, or the path to a single static pod file. Files starting with dots will be ignored. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—pod-max-pids int Default: -1
Set the maximum number of processes per pod. If -1 , the kubelet defaults to the node allocatable PID capacity. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—pods-per-core int32
Number of Pods per core that can run on this kubelet. The total number of pods on this kubelet cannot exceed —max-pods , so —max-pods will be used if this calculation results in a larger number of pods allowed on the kubelet. A value of 0 disables this limit. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—port int32 Default: 10250
The port for the kubelet to serve on. (DEPRECATED: This parameter should be set via the config file specified by the kubelet’s —config flag. See kubelet-config-file for more information.)
—protect-kernel-defaults
Default kubelet behaviour for kernel tuning. If set, kubelet errors if any of kernel tunables is different than kubelet defaults. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—provider-id string
Unique identifier for identifying the node in a machine database, i.e cloud provider. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—qos-reserved string
<Warning: Alpha feature> A set of <resource name>=<percentage> (e.g. memory=50% ) pairs that describe how pod resource requests are reserved at the QoS level. Currently only memory is supported. Requires the QOSReserved feature gate to be enabled. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—read-only-port int32 Default: 10255
The read-only port for the kubelet to serve on with no authentication/authorization (set to 0 to disable). (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—register-node Default: true
Register the node with the API server. If —kubeconfig is not provided, this flag is irrelevant, as the Kubelet won’t have an API server to register with. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—register-schedulable Default: true
Register the node as schedulable. Won’t have any effect if —register-node is false . (DEPRECATED: will be removed in a future version)
—register-with-taints string
Register the node with the given list of taints (comma separated <key>=<value>:<effect> ). No-op if —register-node is false . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—registry-burst int32 Default: 10
Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding —registry-qps . Only used if —registry-qps is greater than 0. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—registry-qps int32 Default: 5
If > 0, limit registry pull QPS to this value. If 0 , unlimited. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—reserved-cpus string
A comma-separated list of CPUs or CPU ranges that are reserved for system and kubernetes usage. This specific list will supersede cpu counts in —system-reserved and —kube-reserved . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—reserved-memory string
A comma-separated list of memory reservations for NUMA nodes. (e.g. —reserved-memory 0:memory=1Gi,hugepages-1M=2Gi —reserved-memory 1:memory=2Gi ). The total sum for each memory type should be equal to the sum of —kube-reserved , —system-reserved and —eviction-threshold . See here for more details. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—resolv-conf string Default: /etc/resolv.conf
Resolver configuration file used as the basis for the container DNS resolution configuration. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—root-dir string Default: /var/lib/kubelet
Directory path for managing kubelet files (volume mounts, etc).
—rotate-certificates
Auto rotate the kubelet client certificates by requesting new certificates from the kube-apiserver when the certificate expiration approaches. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—rotate-server-certificates
<Warning: Beta feature> Auto-request and rotate the kubelet serving certificates by requesting new certificates from the kube-apiserver when the certificate expiration approaches. Requires the RotateKubeletServerCertificate feature gate to be enabled, and approval of the submitted CertificateSigningRequest objects. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—runonce
If true , exit after spawning pods from local manifests or remote urls. Exclusive with —enable-server (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—runtime-cgroups string
Optional absolute name of cgroups to create and run the runtime in.
—runtime-request-timeout duration Default: 2m0s
Timeout of all runtime requests except long running request — pull , logs , exec and attach . When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—seccomp-default string
<Warning: Beta feature> Enable the use of RuntimeDefault as the default seccomp profile for all workloads. The SeccompDefault feature gate must be enabled to allow this flag.
—serialize-image-pulls Default: true
Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an aufs storage backend. Issue #10959 has more details. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—streaming-connection-idle-timeout duration Default: 4h0m0s
Maximum time a streaming connection can be idle before the connection is automatically closed. 0 indicates no timeout. Example: 5m . Note: All connections to the kubelet server have a maximum duration of 4 hours. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—sync-frequency duration Default: 1m0s
Max period between synchronizing running containers and config. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—system-cgroups string
Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under ‘/’ . Empty for no container. Rolling back the flag requires a reboot. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—system-reserved string Default: <none>
A set of <resource name>=<resource quantity> (e.g. cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid=’100′ ) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See here for more detail. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—system-reserved-cgroup string Default: »
Absolute name of the top level cgroup that is used to manage non-kubernetes components for which compute resources were reserved via —system-reserved flag. Ex. /system-reserved . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—tls-cert-file string
File containing x509 Certificate used for serving HTTPS (with intermediate certs, if any, concatenated after server cert). If —tls-cert-file and —tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to the directory passed to —cert-dir . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—tls-cipher-suites string
Comma-separated list of cipher suites for the server. If omitted, the default Go cipher suites will be used.
Preferred values: TLS_AES_128_GCM_SHA256 , TLS_AES_256_GCM_SHA384 , TLS_CHACHA20_POLY1305_SHA256 , TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA , TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 , TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA , TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 , TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 , TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 , TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA , TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 , TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA , TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 , TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 , TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 , TLS_RSA_WITH_AES_128_CBC_SHA , TLS_RSA_WITH_AES_128_GCM_SHA256 , TLS_RSA_WITH_AES_256_CBC_SHA , TLS_RSA_WITH_AES_256_GCM_SHA384
Insecure values: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 , TLS_ECDHE_ECDSA_WITH_RC4_128_SHA , TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA , TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 , TLS_ECDHE_RSA_WITH_RC4_128_SHA , TLS_RSA_WITH_3DES_EDE_CBC_SHA , TLS_RSA_WITH_AES_128_CBC_SHA256 , TLS_RSA_WITH_RC4_128_SHA .
(DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—tls-min-version string
Minimum TLS version supported. Possible values: VersionTLS10 , VersionTLS11 , VersionTLS12 , VersionTLS13 . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—tls-private-key-file string
File containing x509 private key matching —tls-cert-file . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—topology-manager-policy string Default: ‘none’
Topology Manager policy to use. Possible values: ‘none’ , ‘best-effort’ , ‘restricted’ , ‘single-numa-node’ . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—topology-manager-policy-options string
A set of key=value Topology Manager policy options to use, to fine tune their behaviour. If not supplied, keep the default behaviour. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—topology-manager-scope string Default: container
Scope to which topology hints are applied. Topology Manager collects hints from Hint Providers and applies them to the defined scope to ensure the pod admission. Possible values: ‘container’ , ‘pod’ . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
-v, —v Level
Number for the log level verbosity
—version version[=true]
Print version information and quit
—vmodule <A list of ‘pattern=N’ strings>
Comma-separated list of pattern=N settings for file-filtered logging
—volume-plugin-dir string Default: /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
The full path of the directory in which to search for additional third party volume plugins. (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)
—volume-stats-agg-period duration Default: 1m0s
Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes. To disable volume calculations, set to 0 . (DEPRECATED: This parameter should be set via the config file specified by the Kubelet’s —config flag. See kubelet-config-file for more information.)

Feedback

Was this page helpful?

Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar