Question: When would you use Upgrading Linux nodes?

Answer: Upgrading Linux nodesThis page explains how to upgrade a Linux Worker Nodes created with kubeadm.Before you beginYou need to have shell access to all the nodes, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts.To check the version, enter kubectl version.Familiarize yourself with the process for upgrading the rest of your kubeadm cluster. You will want to upgrade the control plane nodes before upgrading your Linux Worker nodes.Changing the package repositoryIf you're using the community-owned package repositories (pkgs.k8s.io), you need to enable the package repository for the desired Kubernetes minor release. This is explained in Changing the Kubernetes package repository document.Note: The legacy package repositories (apt.kubernetes.io and yum.kubernetes.io) have been deprecated and frozen starting from September 13, 2023. Using the new package repositories hosted at pkgs.k8s.io is strongly recommended and required in order to install Kubernetes versions released after September 13, 2023. The deprecated legacy repositories, and their contents, might be removed at any time in the future and without a further notice period. The new package repositories provide downloads for Kubernetes versions starting with v1.24.0.Upgrading worker nodesUpgrade kubeadmUpgrade kubeadm:# replace x in 1.34.x-* with the latest patch version sudo apt-mark unhold kubeadm && \ sudo apt-get update && sudo apt-get install -y kubeadm='1.34.x-*' && \ sudo apt-mark hold kubeadm For systems with DNF:# replace x in 1.34.x-* with the latest patch version sudo yum install -y kubeadm-'1.34.x-*' --disableexcludes=kubernetes For systems with DNF5:# replace x in 1.34.x-* with the latest patch version sudo yum install -y kubeadm-'1.34.x-*' --setopt=disable_excludes=kubernetes Call "kubeadm upgrade"For worker nodes this upgrades the local kubelet configuration:sudo kubeadm upgrade node Drain the nodePrepare the node for maintenance by marking it unschedulable and evicting the workloads:# execute this command on a control plane node # replace <node-to-drain> with the name of your node you are draining kubectl drain <node-to-drain> --ignore-daemonsets Upgrade kubelet and kubectlUpgrade the kubelet and kubectl:# replace x in 1.34.x-* with the latest patch version sudo apt-mark unhold kubelet kubectl && \ sudo apt-get update && sudo apt-get install -y kubelet='1.34.x-*' kubectl='1.34.x-*' && \ sudo apt-mark hold kubelet kubectl For systems with DNF:# replace x in 1.34.x-* with the latest patch version sudo yum install -y kubelet-'1.34.x-*' kubectl-'1.34.x-*' --disableexcludes=kubernetes For systems with DNF5:# replace x in 1.34.x-* with the latest patch version sudo yum install -y kubelet-'1.34.x-*' kubectl-'1.34.x-*' --setopt=disable_excludes=kubernetes Restart the kubelet:sudo systemctl daemon-reload sudo systemctl restart kubelet Un


Question: What are the benefits of Upgrading Linux nodes?

Answer: Upgrading Linux nodesThis page explains how to upgrade a Linux Worker Nodes created with kubeadm.Before you beginYou need to have shell access to all the nodes, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts.To check the version, enter kubectl version.Familiarize yourself with the process for upgrading the rest of your kubeadm cluster. You will want to upgrade the control plane nodes before upgrading your Linux Worker nodes.Changing the package repositoryIf you're using the community-owned package repositories (pkgs.k8s.io), you need to enable the package repository for the desired Kubernetes minor release. This is explained in Changing the Kubernetes package repository document.Note: The legacy package repositories (apt.kubernetes.io and yum.kubernetes.io) have been deprecated and frozen starting from September 13, 2023. Using the new package repositories hosted at pkgs.k8s.io is strongly recommended and required in order to install Kubernetes versions released after September 13, 2023. The deprecated legacy repositories, and their contents, might be removed at any time in the future and without a further notice period. The new package repositories provide downloads for Kubernetes versions starting with v1.24.0.Upgrading worker nodesUpgrade kubeadmUpgrade kubeadm:# replace x in 1.34.x-* with the latest patch version sudo apt-mark unhold kubeadm && \ sudo apt-get update && sudo apt-get install -y kubeadm='1.34.x-*' && \ sudo apt-mark hold kubeadm For systems with DNF:# replace x in 1.34.x-* with the latest patch version sudo yum install -y kubeadm-'1.34.x-*' --disableexcludes=kubernetes For systems with DNF5:# replace x in 1.34.x-* with the latest patch version sudo yum install -y kubeadm-'1.34.x-*' --setopt=disable_excludes=kubernetes Call "kubeadm upgrade"For worker nodes this upgrades the local kubelet configuration:sudo kubeadm upgrade node Drain the nodePrepare the node for maintenance by marking it unschedulable and evicting the workloads:# execute this command on a control plane node # replace <node-to-drain> with the name of your node you are draining kubectl drain <node-to-drain> --ignore-daemonsets Upgrade kubelet and kubectlUpgrade the kubelet and kubectl:# replace x in 1.34.x-* with the latest patch version sudo apt-mark unhold kubelet kubectl && \ sudo apt-get update && sudo apt-get install -y kubelet='1.34.x-*' kubectl='1.34.x-*' && \ sudo apt-mark hold kubelet kubectl For systems with DNF:# replace x in 1.34.x-* with the latest patch version sudo yum install -y kubelet-'1.34.x-*' kubectl-'1.34.x-*' --disableexcludes=kubernetes For systems with DNF5:# replace x in 1.34.x-* with the latest patch version sudo yum install -y kubelet-'1.34.x-*' kubectl-'1.34.x-*' --setopt=disable_excludes=kubernetes Restart the kubelet:sudo systemctl daemon-reload sudo systemctl restart kubelet Un


Question: What is Upgrading Linux nodes?

Answer: T h i s   p a g e   e x p l a i n s   h o w   t o   u p g r a d e   a   L i n u x   W o r k e r   N o d e s   c r e a t e d   w i t h   k u b e a d m .


Question: What is Before you begin?

Answer: Y o u   n e e d   t o   h a v e   s h e l l   a c c e s s   t o   a l l   t h e   n o d e s ,   a n d   t h e   k u b e c t l   c o m m a n d - l i n e   t o o l   m u s t   b e   c o n f i g u r e d   t o   c o m m u n i c a t e   w i t h   y o u r   c l u s t e r .   I t   i s   r e c o m m e n d e d   t o   r u n   t h i s   t u t o r i a l   o n   a   c l u s t e r   w i t h   a t   l e a s t   t w o   n o d e s   t h a t   a r e   n o t   a c t i n g   a s   c o n t r o l   p l a n e   h o s t s . T o   c h e c k   t h e   v e r s i o n ,   e n t e r   k u b e c t l   v e r s i o n .   Y o u   n e e d   t o   h a v e   s h e l l   a c c e s s   t o   a l l   t h e   n o d e s ,   a n d   t h e   k u b e c t l   c o m m a n d - l i n e   t o o l   m u s t   b e   c o n f i g u r e d   t o   c o m m u n i c a t e   w i t h   y o u r   c l u s t e r .   I t   i s   r e c o m m e n d e d   t o   r u n   t h i s   t u t o r i a l   o n   a   c l u s t e r   w i t h   a t   l e a s t   t w o   n o d e s   t h a t   a r e   n o t   a c t i n g   a s   c o n t r o l   p l a n e   h o s t s .   T o   c h e c k   t h e   v e r s i o n ,   e n t e r   k u b e c t l   v e r s i o n .   F a m i l i a r i z e   y o u r s e l f   w i t h   t h e   p r o c e s s   f o r   u p g r a d i n g   t h e   r e s t   o f   y o u r   k u b e a d m   c l u s t e r .   Y o u   w i l l   w a n t   t o   u p g r a d e   t h e   c o n t r o l   p l a n e   n o d e s   b e f o r e   u p g r a d i n g   y o u r   L i n u x   W o r k e r   n o d e s .


Question: What is Changing the package repository?

Answer: I f   y o u ' r e   u s i n g   t h e   c o m m u n i t y - o w n e d   p a c k a g e   r e p o s i t o r i e s   ( p k g s . k 8 s . i o ) ,   y o u   n e e d   t o   e n a b l e   t h e   p a c k a g e   r e p o s i t o r y   f o r   t h e   d e s i r e d   K u b e r n e t e s   m i n o r   r e l e a s e .   T h i s   i s   e x p l a i n e d   i n   C h a n g i n g   t h e   K u b e r n e t e s   p a c k a g e   r e p o s i t o r y   d o c u m e n t .


Question: What is Upgrade kubeadm?

Answer: U p g r a d e   k u b e a d m :   #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   a p t - m a r k   u n h o l d   k u b e a d m   & &   \   s u d o   a p t - g e t   u p d a t e   & &   s u d o   a p t - g e t   i n s t a l l   - y   k u b e a d m = ' 1 . 3 4 . x - * '   & &   \   s u d o   a p t - m a r k   h o l d   k u b e a d m   #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   a p t - m a r k   u n h o l d   k u b e a d m   & &   \   s u d o   a p t - g e t   u p d a t e   & &   s u d o   a p t - g e t   i n s t a l l   - y   k u b e a d m = ' 1 . 3 4 . x - * '   & &   \   s u d o   a p t - m a r k   h o l d   k u b e a d m   F o r   s y s t e m s   w i t h   D N F : #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   y u m   i n s t a l l   - y   k u b e a d m - ' 1 . 3 4 . x - * '   - - d i s a b l e e x c l u d e s = k u b e r n e t e s   F o r   s y s t e m s   w i t h   D N F 5 : #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   y u m   i n s t a l l   - y   k u b e a d m - ' 1 . 3 4 . x - * '   - - s e t o p t = d i s a b l e _ e x c l u d e s = k u b e r n e t e s   F o r   s y s t e m s   w i t h   D N F :   #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   y u m   i n s t a l l   - y   k u b e a d m - ' 1 . 3 4 . x - * '   - - d i s a b l e e x c l u d e s = k u b e r n e t e s   F o r   s y s t e m s   w i t h   D N F 5 :   #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   y u m   i n s t a l l   - y   k u b e a d m - ' 1 . 3 4 . x - * '   - - s e t o p t = d i s a b l e _ e x c l u d e s = k u b e r n e t e s


Question: What is Call "kubeadm upgrade"?

Answer: F o r   w o r k e r   n o d e s   t h i s   u p g r a d e s   t h e   l o c a l   k u b e l e t   c o n f i g u r a t i o n :   s u d o   k u b e a d m   u p g r a d e   n o d e


Question: What is Drain the node?

Answer: P r e p a r e   t h e   n o d e   f o r   m a i n t e n a n c e   b y   m a r k i n g   i t   u n s c h e d u l a b l e   a n d   e v i c t i n g   t h e   w o r k l o a d s :   #   e x e c u t e   t h i s   c o m m a n d   o n   a   c o n t r o l   p l a n e   n o d e   #   r e p l a c e   < n o d e - t o - d r a i n >   w i t h   t h e   n a m e   o f   y o u r   n o d e   y o u   a r e   d r a i n i n g   k u b e c t l   d r a i n   < n o d e - t o - d r a i n >   - - i g n o r e - d a e m o n s e t s


Question: What is Upgrade kubelet and kubectl?

Answer: U p g r a d e   t h e   k u b e l e t   a n d   k u b e c t l : #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   a p t - m a r k   u n h o l d   k u b e l e t   k u b e c t l   & &   \   s u d o   a p t - g e t   u p d a t e   & &   s u d o   a p t - g e t   i n s t a l l   - y   k u b e l e t = ' 1 . 3 4 . x - * '   k u b e c t l = ' 1 . 3 4 . x - * '   & &   \   s u d o   a p t - m a r k   h o l d   k u b e l e t   k u b e c t l   F o r   s y s t e m s   w i t h   D N F : #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   y u m   i n s t a l l   - y   k u b e l e t - ' 1 . 3 4 . x - * '   k u b e c t l - ' 1 . 3 4 . x - * '   - - d i s a b l e e x c l u d e s = k u b e r n e t e s   F o r   s y s t e m s   w i t h   D N F 5 : #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   y u m   i n s t a l l   - y   k u b e l e t - ' 1 . 3 4 . x - * '   k u b e c t l - ' 1 . 3 4 . x - * '   - - s e t o p t = d i s a b l e _ e x c l u d e s = k u b e r n e t e s   R e s t a r t   t h e   k u b e l e t : s u d o   s y s t e m c t l   d a e m o n - r e l o a d   s u d o   s y s t e m c t l   r e s t a r t   k u b e l e t   U p g r a d e   t h e   k u b e l e t   a n d   k u b e c t l :   #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   a p t - m a r k   u n h o l d   k u b e l e t   k u b e c t l   & &   \   s u d o   a p t - g e t   u p d a t e   & &   s u d o   a p t - g e t   i n s t a l l   - y   k u b e l e t = ' 1 . 3 4 . x - * '   k u b e c t l = ' 1 . 3 4 . x - * '   & &   \   s u d o   a p t - m a r k   h o l d   k u b e l e t   k u b e c t l   #   r e p l a c e   x   i n   1 . 3 4 . x - *   w i t h   t h e   l a t e s t   p a t c h   v e r s i o n   s u d o   a p t - m a r k   u n h o l d   k u b e l


Question: What is Uncordon the node?

Answer: B r i n g   t h e   n o d e   b a c k   o n l i n e   b y   m a r k i n g   i t   s c h e d u l a b l e :   #   e x e c u t e   t h i s   c o m m a n d   o n   a   c o n t r o l   p l a n e   n o d e   #   r e p l a c e   < n o d e - t o - u n c o r d o n >   w i t h   t h e   n a m e   o f   y o u r   n o d e   k u b e c t l   u n c o r d o n   < n o d e - t o - u n c o r d o n >


Question: What is What's next?

Answer: S e e   h o w   t o   U p g r a d e   W i n d o w s   n o d e s .


Question: What is kubectl top node?

Answer: kubectl top nodeSynopsisDisplay resource (CPU/memory) usage of nodes.The top-node command allows you to see the resource consumption of nodes.kubectl top node [NAME | -l label] Examples # Show metrics for all nodes kubectl top node # Show metrics for a given node kubectl top node NODE_NAME Options-h, --helphelp for node--no-headersIf present, print output without headers-l, --selector stringSelector (label query) to filter on, supports '=', '==', '!=', 'in', 'notin'.(e.g. -l key1=value1,key2=value2,key3 in (value3)). Matching objects must satisfy all of the specified label constraints.--show-capacityPrint node resources based on Capacity instead of Allocatable(default) of the nodes.--show-swapPrint node resources related to swap memory.--sort-by stringIf non-empty, sort nodes list using specified field. The field can be either 'cpu' or 'memory'.--use-protocol-buffers Default: trueEnables using protocol-buffers to access Metrics API.Parent Options Inherited--as stringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group stringsGroup to impersonate for the operation, this flag can be repeated to specify multiple groups.--as-uid stringUID to impersonate for the operation.--cache-dir string Default: "$HOME/.kube/cache"Default cache directory--certificate-authority stringPath to a cert file for the certificate authority--client-certificate stringPath to a client certificate file for TLS--client-key stringPath to a client key file for TLS--cluster stringThe name of the kubeconfig cluster to use--context stringThe name of the kubeconfig context to use--disable-compressionIf true, opt-out of response compression for all requests to the server--insecure-skip-tls-verifyIf true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure--kubeconfig stringPath to the kubeconfig file to use for CLI requests.--kuberc stringPath to the kuberc file to use for preferences. This can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.--match-server-versionRequire server version to match client version-n, --namespace stringIf present, the namespace scope for this CLI request--password stringPassword for basic authentication to the API server--profile string Default: "none"Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)--profile-output string Default: "profile.pprof"Name of the file to write the profile to--request-timeout string Default: "0"The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.-s, --server stringThe address and port of the Kubernetes API server--storage-driver-buffer-duration duration Default: 1m0sWrites in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transac


Question: How does kubectl top node work?

Answer: kubectl top nodeSynopsisDisplay resource (CPU/memory) usage of nodes.The top-node command allows you to see the resource consumption of nodes.kubectl top node [NAME | -l label] Examples # Show metrics for all nodes kubectl top node # Show metrics for a given node kubectl top node NODE_NAME Options-h, --helphelp for node--no-headersIf present, print output without headers-l, --selector stringSelector (label query) to filter on, supports '=', '==', '!=', 'in', 'notin'.(e.g. -l key1=value1,key2=value2,key3 in (value3)). Matching objects must satisfy all of the specified label constraints.--show-capacityPrint node resources based on Capacity instead of Allocatable(default) of the nodes.--show-swapPrint node resources related to swap memory.--sort-by stringIf non-empty, sort nodes list using specified field. The field can be either 'cpu' or 'memory'.--use-protocol-buffers Default: trueEnables using protocol-buffers to access Metrics API.Parent Options Inherited--as stringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group stringsGroup to impersonate for the operation, this flag can be repeated to specify multiple groups.--as-uid stringUID to impersonate for the operation.--cache-dir string Default: "$HOME/.kube/cache"Default cache directory--certificate-authority stringPath to a cert file for the certificate authority--client-certificate stringPath to a client certificate file for TLS--client-key stringPath to a client key file for TLS--cluster stringThe name of the kubeconfig cluster to use--context stringThe name of the kubeconfig context to use--disable-compressionIf true, opt-out of response compression for all requests to the server--insecure-skip-tls-verifyIf true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure--kubeconfig stringPath to the kubeconfig file to use for CLI requests.--kuberc stringPath to the kuberc file to use for preferences. This can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.--match-server-versionRequire server version to match client version-n, --namespace stringIf present, the namespace scope for this CLI request--password stringPassword for basic authentication to the API server--profile string Default: "none"Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)--profile-output string Default: "profile.pprof"Name of the file to write the profile to--request-timeout string Default: "0"The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.-s, --server stringThe address and port of the Kubernetes API server--storage-driver-buffer-duration duration Default: 1m0sWrites in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transac


Question: When would you use kubectl top node?

Answer: kubectl top nodeSynopsisDisplay resource (CPU/memory) usage of nodes.The top-node command allows you to see the resource consumption of nodes.kubectl top node [NAME | -l label] Examples # Show metrics for all nodes kubectl top node # Show metrics for a given node kubectl top node NODE_NAME Options-h, --helphelp for node--no-headersIf present, print output without headers-l, --selector stringSelector (label query) to filter on, supports '=', '==', '!=', 'in', 'notin'.(e.g. -l key1=value1,key2=value2,key3 in (value3)). Matching objects must satisfy all of the specified label constraints.--show-capacityPrint node resources based on Capacity instead of Allocatable(default) of the nodes.--show-swapPrint node resources related to swap memory.--sort-by stringIf non-empty, sort nodes list using specified field. The field can be either 'cpu' or 'memory'.--use-protocol-buffers Default: trueEnables using protocol-buffers to access Metrics API.Parent Options Inherited--as stringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group stringsGroup to impersonate for the operation, this flag can be repeated to specify multiple groups.--as-uid stringUID to impersonate for the operation.--cache-dir string Default: "$HOME/.kube/cache"Default cache directory--certificate-authority stringPath to a cert file for the certificate authority--client-certificate stringPath to a client certificate file for TLS--client-key stringPath to a client key file for TLS--cluster stringThe name of the kubeconfig cluster to use--context stringThe name of the kubeconfig context to use--disable-compressionIf true, opt-out of response compression for all requests to the server--insecure-skip-tls-verifyIf true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure--kubeconfig stringPath to the kubeconfig file to use for CLI requests.--kuberc stringPath to the kuberc file to use for preferences. This can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.--match-server-versionRequire server version to match client version-n, --namespace stringIf present, the namespace scope for this CLI request--password stringPassword for basic authentication to the API server--profile string Default: "none"Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)--profile-output string Default: "profile.pprof"Name of the file to write the profile to--request-timeout string Default: "0"The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.-s, --server stringThe address and port of the Kubernetes API server--storage-driver-buffer-duration duration Default: 1m0sWrites in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transac


Question: What are the benefits of kubectl top node?

Answer: kubectl top nodeSynopsisDisplay resource (CPU/memory) usage of nodes.The top-node command allows you to see the resource consumption of nodes.kubectl top node [NAME | -l label] Examples # Show metrics for all nodes kubectl top node # Show metrics for a given node kubectl top node NODE_NAME Options-h, --helphelp for node--no-headersIf present, print output without headers-l, --selector stringSelector (label query) to filter on, supports '=', '==', '!=', 'in', 'notin'.(e.g. -l key1=value1,key2=value2,key3 in (value3)). Matching objects must satisfy all of the specified label constraints.--show-capacityPrint node resources based on Capacity instead of Allocatable(default) of the nodes.--show-swapPrint node resources related to swap memory.--sort-by stringIf non-empty, sort nodes list using specified field. The field can be either 'cpu' or 'memory'.--use-protocol-buffers Default: trueEnables using protocol-buffers to access Metrics API.Parent Options Inherited--as stringUsername to impersonate for the operation. User could be a regular user or a service account in a namespace.--as-group stringsGroup to impersonate for the operation, this flag can be repeated to specify multiple groups.--as-uid stringUID to impersonate for the operation.--cache-dir string Default: "$HOME/.kube/cache"Default cache directory--certificate-authority stringPath to a cert file for the certificate authority--client-certificate stringPath to a client certificate file for TLS--client-key stringPath to a client key file for TLS--cluster stringThe name of the kubeconfig cluster to use--context stringThe name of the kubeconfig context to use--disable-compressionIf true, opt-out of response compression for all requests to the server--insecure-skip-tls-verifyIf true, the server's certificate will not be checked for validity. This will make your HTTPS connections insecure--kubeconfig stringPath to the kubeconfig file to use for CLI requests.--kuberc stringPath to the kuberc file to use for preferences. This can be disabled by exporting KUBECTL_KUBERC=false feature gate or turning off the feature KUBERC=off.--match-server-versionRequire server version to match client version-n, --namespace stringIf present, the namespace scope for this CLI request--password stringPassword for basic authentication to the API server--profile string Default: "none"Name of profile to capture. One of (none|cpu|heap|goroutine|threadcreate|block|mutex)--profile-output string Default: "profile.pprof"Name of the file to write the profile to--request-timeout string Default: "0"The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests.-s, --server stringThe address and port of the Kubernetes API server--storage-driver-buffer-duration duration Default: 1m0sWrites in the storage driver will be buffered for this duration, and committed to the non memory backends as a single transac


Question: What is Synopsis?

Answer: D i s p l a y   r e s o u r c e   ( C P U / m e m o r y )   u s a g e   o f   n o d e s .   T h e   t o p - n o d e   c o m m a n d   a l l o w s   y o u   t o   s e e   t h e   r e s o u r c e   c o n s u m p t i o n   o f   n o d e s .   k u b e c t l   t o p   n o d e   [ N A M E   |   - l   l a b e l ]


Question: What is Examples?

Answer: #   S h o w   m e t r i c s   f o r   a l l   n o d e s   k u b e c t l   t o p   n o d e   #   S h o w   m e t r i c s   f o r   a   g i v e n   n o d e   k u b e c t l   t o p   n o d e   N O D E _ N A M E


Question: What is Options?

Answer: h e l p   f o r   n o d e   I f   p r e s e n t ,   p r i n t   o u t p u t   w i t h o u t   h e a d e r s   S e l e c t o r   ( l a b e l   q u e r y )   t o   f i l t e r   o n ,   s u p p o r t s   ' = ' ,   ' = = ' ,   ' ! = ' ,   ' i n ' ,   ' n o t i n ' . ( e . g .   - l   k e y 1 = v a l u e 1 , k e y 2 = v a l u e 2 , k e y 3   i n   ( v a l u e 3 ) ) .   M a t c h i n g   o b j e c t s   m u s t   s a t i s f y   a l l   o f   t h e   s p e c i f i e d   l a b e l   c o n s t r a i n t s .   P r i n t   n o d e   r e s o u r c e s   b a s e d   o n   C a p a c i t y   i n s t e a d   o f   A l l o c a t a b l e ( d e f a u l t )   o f   t h e   n o d e s .   P r i n t   n o d e   r e s o u r c e s   r e l a t e d   t o   s w a p   m e m o r y .   I f   n o n - e m p t y ,   s o r t   n o d e s   l i s t   u s i n g   s p e c i f i e d   f i e l d .   T h e   f i e l d   c a n   b e   e i t h e r   ' c p u '   o r   ' m e m o r y ' .   E n a b l e s   u s i n g   p r o t o c o l - b u f f e r s   t o   a c c e s s   M e t r i c s   A P I .


Question: What is Parent Options Inherited?

Answer: U s e r n a m e   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n .   U s e r   c o u l d   b e   a   r e g u l a r   u s e r   o r   a   s e r v i c e   a c c o u n t   i n   a   n a m e s p a c e .   G r o u p   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n ,   t h i s   f l a g   c a n   b e   r e p e a t e d   t o   s p e c i f y   m u l t i p l e   g r o u p s .   U I D   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n .   D e f a u l t   c a c h e   d i r e c t o r y   P a t h   t o   a   c e r t   f i l e   f o r   t h e   c e r t i f i c a t e   a u t h o r i t y   P a t h   t o   a   c l i e n t   c e r t i f i c a t e   f i l e   f o r   T L S   P a t h   t o   a   c l i e n t   k e y   f i l e   f o r   T L S   T h e   n a m e   o f   t h e   k u b e c o n f i g   c l u s t e r   t o   u s e   T h e   n a m e   o f   t h e   k u b e c o n f i g   c o n t e x t   t o   u s e   I f   t r u e ,   o p t - o u t   o f   r e s p o n s e   c o m p r e s s i o n   f o r   a l l   r e q u e s t s   t o   t h e   s e r v e r   I f   t r u e ,   t h e   s e r v e r ' s   c e r t i f i c a t e   w i l l   n o t   b e   c h e c k e d   f o r   v a l i d i t y .   T h i s   w i l l   m a k e   y o u r   H T T P S   c o n n e c t i o n s   i n s e c u r e   P a t h   t o   t h e   k u b e c o n f i g   f i l e   t o   u s e   f o r   C L I   r e q u e s t s .   P a t h   t o   t h e   k u b e r c   f i l e   t o   u s e   f o r   p r e f e r e n c e s .   T h i s   c a n   b e   d i s a b l e d   b y   e x p o r t i n g   K U B E C T L _ K U B E R C = f a l s e   f e a t u r e   g a t e   o r   t u r n i n g   o f f   t h e   f e a t u r e   K U B E R C = o f f .   R e q u i r e   s e r v e r   v e r s i o n   t o   m a t c h   c l i e n t   v e r s i o n   I f   p r e s e n t ,   t h e   n a m e s p a c e   s c o p e   f o r   t h i s   C L I   r e q u e s t   P a s s w o r d   f o r   b a s i c   a u t h e n t i c a t


Question: What is See Also?

Answer: k u b e c t l   t o p   -   D i s p l a y   r e s o u r c e   ( C P U / m e m o r y )   u s a g e   T h i s   p a g e   i s   a u t o m a t i c a l l y   g e n e r a t e d .   I f   y o u   p l a n   t o   r e p o r t   a n   i s s u e   w i t h   t h i s   p a g e ,   m e n t i o n   t h a t   t h e   p a g e   i s   a u t o - g e n e r a t e d   i n   y o u r   i s s u e   d e s c r i p t i o n .   T h e   f i x   m a y   n e e d   t o   h a p p e n   e l s e w h e r e   i n   t h e   K u b e r n e t e s   p r o j e c t .


Question: What is kubectl autoscale?

Answer: kubectl autoscaleSynopsisCreates an autoscaler that automatically chooses and sets the number of pods that run in a Kubernetes cluster. The command will attempt to use the autoscaling/v2 API first, in case of an error, it will fall back to autoscaling/v1 API.Looks up a deployment, replica set, stateful set, or replication controller by name and creates an autoscaler that uses the given resource as a reference. An autoscaler can automatically increase or decrease number of pods deployed within the system as needed.kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu=CPU] [--memory=MEMORY] Examples # Auto scale a deployment "foo", with the number of pods between 2 and 10, no target CPU utilization specified so a default autoscaling policy will be used kubectl autoscale deployment foo --min=2 --max=10 # Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80% kubectl autoscale rc foo --max=5 --cpu=80% # Auto scale a deployment "bar", with the number of pods between 3 and 6, target average CPU of 500m and memory of 200Mi kubectl autoscale deployment bar --min=3 --max=6 --cpu=500m --memory=200Mi # Auto scale a deployment "bar", with the number of pods between 2 and 8, target CPU utilization 60% and memory utilization 70% kubectl autoscale deployment bar --min=3 --max=6 --cpu=60% --memory=70% Options--allow-missing-template-keys Default: trueIf true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.--cpu stringTarget CPU utilization over all the pods. When specified as a percentage (e.g."70%" for 70% of requested CPU) it will target average utilization. When specified as quantity (e.g."500m" for 500 milliCPU) it will target average value. Value without units is treated as a quantity with miliCPU being the unit (e.g."500" is "500m").--dry-run string[="unchanged"] Default: "none"Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource.--field-manager string Default: "kubectl-autoscale"Name of the manager used to track field ownership.-f, --filename stringsFilename, directory, or URL to files identifying the resource to autoscale.-h, --helphelp for autoscale-k, --kustomize stringProcess the kustomization directory. This flag can't be used together with -f or -R.--max int32 Default: -1The upper limit for the number of pods that can be set by the autoscaler. Required.--memory stringTarget memory utilization over all the pods. When specified as a percentage (e.g."60%" for 60% of requested memory) it will target average utilization. When specified as quantity (e.g."200Mi" for 200 MiB, "1Gi" for 1 GiB) it will target average value. Value without units is treated as a quantity with mebibytes being the unit (e.g."200" is "200Mi").--min int32 D


Question: How does kubectl autoscale work?

Answer: kubectl autoscaleSynopsisCreates an autoscaler that automatically chooses and sets the number of pods that run in a Kubernetes cluster. The command will attempt to use the autoscaling/v2 API first, in case of an error, it will fall back to autoscaling/v1 API.Looks up a deployment, replica set, stateful set, or replication controller by name and creates an autoscaler that uses the given resource as a reference. An autoscaler can automatically increase or decrease number of pods deployed within the system as needed.kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu=CPU] [--memory=MEMORY] Examples # Auto scale a deployment "foo", with the number of pods between 2 and 10, no target CPU utilization specified so a default autoscaling policy will be used kubectl autoscale deployment foo --min=2 --max=10 # Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80% kubectl autoscale rc foo --max=5 --cpu=80% # Auto scale a deployment "bar", with the number of pods between 3 and 6, target average CPU of 500m and memory of 200Mi kubectl autoscale deployment bar --min=3 --max=6 --cpu=500m --memory=200Mi # Auto scale a deployment "bar", with the number of pods between 2 and 8, target CPU utilization 60% and memory utilization 70% kubectl autoscale deployment bar --min=3 --max=6 --cpu=60% --memory=70% Options--allow-missing-template-keys Default: trueIf true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.--cpu stringTarget CPU utilization over all the pods. When specified as a percentage (e.g."70%" for 70% of requested CPU) it will target average utilization. When specified as quantity (e.g."500m" for 500 milliCPU) it will target average value. Value without units is treated as a quantity with miliCPU being the unit (e.g."500" is "500m").--dry-run string[="unchanged"] Default: "none"Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource.--field-manager string Default: "kubectl-autoscale"Name of the manager used to track field ownership.-f, --filename stringsFilename, directory, or URL to files identifying the resource to autoscale.-h, --helphelp for autoscale-k, --kustomize stringProcess the kustomization directory. This flag can't be used together with -f or -R.--max int32 Default: -1The upper limit for the number of pods that can be set by the autoscaler. Required.--memory stringTarget memory utilization over all the pods. When specified as a percentage (e.g."60%" for 60% of requested memory) it will target average utilization. When specified as quantity (e.g."200Mi" for 200 MiB, "1Gi" for 1 GiB) it will target average value. Value without units is treated as a quantity with mebibytes being the unit (e.g."200" is "200Mi").--min int32 D


Question: When would you use kubectl autoscale?

Answer: kubectl autoscaleSynopsisCreates an autoscaler that automatically chooses and sets the number of pods that run in a Kubernetes cluster. The command will attempt to use the autoscaling/v2 API first, in case of an error, it will fall back to autoscaling/v1 API.Looks up a deployment, replica set, stateful set, or replication controller by name and creates an autoscaler that uses the given resource as a reference. An autoscaler can automatically increase or decrease number of pods deployed within the system as needed.kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu=CPU] [--memory=MEMORY] Examples # Auto scale a deployment "foo", with the number of pods between 2 and 10, no target CPU utilization specified so a default autoscaling policy will be used kubectl autoscale deployment foo --min=2 --max=10 # Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80% kubectl autoscale rc foo --max=5 --cpu=80% # Auto scale a deployment "bar", with the number of pods between 3 and 6, target average CPU of 500m and memory of 200Mi kubectl autoscale deployment bar --min=3 --max=6 --cpu=500m --memory=200Mi # Auto scale a deployment "bar", with the number of pods between 2 and 8, target CPU utilization 60% and memory utilization 70% kubectl autoscale deployment bar --min=3 --max=6 --cpu=60% --memory=70% Options--allow-missing-template-keys Default: trueIf true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.--cpu stringTarget CPU utilization over all the pods. When specified as a percentage (e.g."70%" for 70% of requested CPU) it will target average utilization. When specified as quantity (e.g."500m" for 500 milliCPU) it will target average value. Value without units is treated as a quantity with miliCPU being the unit (e.g."500" is "500m").--dry-run string[="unchanged"] Default: "none"Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource.--field-manager string Default: "kubectl-autoscale"Name of the manager used to track field ownership.-f, --filename stringsFilename, directory, or URL to files identifying the resource to autoscale.-h, --helphelp for autoscale-k, --kustomize stringProcess the kustomization directory. This flag can't be used together with -f or -R.--max int32 Default: -1The upper limit for the number of pods that can be set by the autoscaler. Required.--memory stringTarget memory utilization over all the pods. When specified as a percentage (e.g."60%" for 60% of requested memory) it will target average utilization. When specified as quantity (e.g."200Mi" for 200 MiB, "1Gi" for 1 GiB) it will target average value. Value without units is treated as a quantity with mebibytes being the unit (e.g."200" is "200Mi").--min int32 D


Question: What are the benefits of kubectl autoscale?

Answer: kubectl autoscaleSynopsisCreates an autoscaler that automatically chooses and sets the number of pods that run in a Kubernetes cluster. The command will attempt to use the autoscaling/v2 API first, in case of an error, it will fall back to autoscaling/v1 API.Looks up a deployment, replica set, stateful set, or replication controller by name and creates an autoscaler that uses the given resource as a reference. An autoscaler can automatically increase or decrease number of pods deployed within the system as needed.kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu=CPU] [--memory=MEMORY] Examples # Auto scale a deployment "foo", with the number of pods between 2 and 10, no target CPU utilization specified so a default autoscaling policy will be used kubectl autoscale deployment foo --min=2 --max=10 # Auto scale a replication controller "foo", with the number of pods between 1 and 5, target CPU utilization at 80% kubectl autoscale rc foo --max=5 --cpu=80% # Auto scale a deployment "bar", with the number of pods between 3 and 6, target average CPU of 500m and memory of 200Mi kubectl autoscale deployment bar --min=3 --max=6 --cpu=500m --memory=200Mi # Auto scale a deployment "bar", with the number of pods between 2 and 8, target CPU utilization 60% and memory utilization 70% kubectl autoscale deployment bar --min=3 --max=6 --cpu=60% --memory=70% Options--allow-missing-template-keys Default: trueIf true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats.--cpu stringTarget CPU utilization over all the pods. When specified as a percentage (e.g."70%" for 70% of requested CPU) it will target average utilization. When specified as quantity (e.g."500m" for 500 milliCPU) it will target average value. Value without units is treated as a quantity with miliCPU being the unit (e.g."500" is "500m").--dry-run string[="unchanged"] Default: "none"Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource.--field-manager string Default: "kubectl-autoscale"Name of the manager used to track field ownership.-f, --filename stringsFilename, directory, or URL to files identifying the resource to autoscale.-h, --helphelp for autoscale-k, --kustomize stringProcess the kustomization directory. This flag can't be used together with -f or -R.--max int32 Default: -1The upper limit for the number of pods that can be set by the autoscaler. Required.--memory stringTarget memory utilization over all the pods. When specified as a percentage (e.g."60%" for 60% of requested memory) it will target average utilization. When specified as quantity (e.g."200Mi" for 200 MiB, "1Gi" for 1 GiB) it will target average value. Value without units is treated as a quantity with mebibytes being the unit (e.g."200" is "200Mi").--min int32 D


Question: What is Synopsis?

Answer: C r e a t e s   a n   a u t o s c a l e r   t h a t   a u t o m a t i c a l l y   c h o o s e s   a n d   s e t s   t h e   n u m b e r   o f   p o d s   t h a t   r u n   i n   a   K u b e r n e t e s   c l u s t e r .   T h e   c o m m a n d   w i l l   a t t e m p t   t o   u s e   t h e   a u t o s c a l i n g / v 2   A P I   f i r s t ,   i n   c a s e   o f   a n   e r r o r ,   i t   w i l l   f a l l   b a c k   t o   a u t o s c a l i n g / v 1   A P I .   L o o k s   u p   a   d e p l o y m e n t ,   r e p l i c a   s e t ,   s t a t e f u l   s e t ,   o r   r e p l i c a t i o n   c o n t r o l l e r   b y   n a m e   a n d   c r e a t e s   a n   a u t o s c a l e r   t h a t   u s e s   t h e   g i v e n   r e s o u r c e   a s   a   r e f e r e n c e .   A n   a u t o s c a l e r   c a n   a u t o m a t i c a l l y   i n c r e a s e   o r   d e c r e a s e   n u m b e r   o f   p o d s   d e p l o y e d   w i t h i n   t h e   s y s t e m   a s   n e e d e d .   k u b e c t l   a u t o s c a l e   ( - f   F I L E N A M E   |   T Y P E   N A M E   |   T Y P E / N A M E )   [ - - m i n = M I N P O D S ]   - - m a x = M A X P O D S   [ - - c p u = C P U ]   [ - - m e m o r y = M E M O R Y ]


Question: What is Examples?

Answer: #   A u t o   s c a l e   a   d e p l o y m e n t   " f o o " ,   w i t h   t h e   n u m b e r   o f   p o d s   b e t w e e n   2   a n d   1 0 ,   n o   t a r g e t   C P U   u t i l i z a t i o n   s p e c i f i e d   s o   a   d e f a u l t   a u t o s c a l i n g   p o l i c y   w i l l   b e   u s e d   k u b e c t l   a u t o s c a l e   d e p l o y m e n t   f o o   - - m i n = 2   - - m a x = 1 0   #   A u t o   s c a l e   a   r e p l i c a t i o n   c o n t r o l l e r   " f o o " ,   w i t h   t h e   n u m b e r   o f   p o d s   b e t w e e n   1   a n d   5 ,   t a r g e t   C P U   u t i l i z a t i o n   a t   8 0 %   k u b e c t l   a u t o s c a l e   r c   f o o   - - m a x = 5   - - c p u = 8 0 %   #   A u t o   s c a l e   a   d e p l o y m e n t   " b a r " ,   w i t h   t h e   n u m b e r   o f   p o d s   b e t w e e n   3   a n d   6 ,   t a r g e t   a v e r a g e   C P U   o f   5 0 0 m   a n d   m e m o r y   o f   2 0 0 M i   k u b e c t l   a u t o s c a l e   d e p l o y m e n t   b a r   - - m i n = 3   - - m a x = 6   - - c p u = 5 0 0 m   - - m e m o r y = 2 0 0 M i   #   A u t o   s c a l e   a   d e p l o y m e n t   " b a r " ,   w i t h   t h e   n u m b e r   o f   p o d s   b e t w e e n   2   a n d   8 ,   t a r g e t   C P U   u t i l i z a t i o n   6 0 %   a n d   m e m o r y   u t i l i z a t i o n   7 0 %   k u b e c t l   a u t o s c a l e   d e p l o y m e n t   b a r   - - m i n = 3   - - m a x = 6   - - c p u = 6 0 %   - - m e m o r y = 7 0 %


Question: What is Options?

Answer: I f   t r u e ,   i g n o r e   a n y   e r r o r s   i n   t e m p l a t e s   w h e n   a   f i e l d   o r   m a p   k e y   i s   m i s s i n g   i n   t h e   t e m p l a t e .   O n l y   a p p l i e s   t o   g o l a n g   a n d   j s o n p a t h   o u t p u t   f o r m a t s .   T a r g e t   C P U   u t i l i z a t i o n   o v e r   a l l   t h e   p o d s .   W h e n   s p e c i f i e d   a s   a   p e r c e n t a g e   ( e . g . " 7 0 % "   f o r   7 0 %   o f   r e q u e s t e d   C P U )   i t   w i l l   t a r g e t   a v e r a g e   u t i l i z a t i o n .   W h e n   s p e c i f i e d   a s   q u a n t i t y   ( e . g . " 5 0 0 m "   f o r   5 0 0   m i l l i C P U )   i t   w i l l   t a r g e t   a v e r a g e   v a l u e .   V a l u e   w i t h o u t   u n i t s   i s   t r e a t e d   a s   a   q u a n t i t y   w i t h   m i l i C P U   b e i n g   t h e   u n i t   ( e . g . " 5 0 0 "   i s   " 5 0 0 m " ) .   M u s t   b e   " n o n e " ,   " s e r v e r " ,   o r   " c l i e n t " .   I f   c l i e n t   s t r a t e g y ,   o n l y   p r i n t   t h e   o b j e c t   t h a t   w o u l d   b e   s e n t ,   w i t h o u t   s e n d i n g   i t .   I f   s e r v e r   s t r a t e g y ,   s u b m i t   s e r v e r - s i d e   r e q u e s t   w i t h o u t   p e r s i s t i n g   t h e   r e s o u r c e .   N a m e   o f   t h e   m a n a g e r   u s e d   t o   t r a c k   f i e l d   o w n e r s h i p .   F i l e n a m e ,   d i r e c t o r y ,   o r   U R L   t o   f i l e s   i d e n t i f y i n g   t h e   r e s o u r c e   t o   a u t o s c a l e .   h e l p   f o r   a u t o s c a l e   P r o c e s s   t h e   k u s t o m i z a t i o n   d i r e c t o r y .   T h i s   f l a g   c a n ' t   b e   u s e d   t o g e t h e r   w i t h   - f   o r   - R .   T h e   u p p e r   l i m i t   f o r   t h e   n u m b e r   o f   p o d s   t h a t   c a n   b e   s e t   b y   t h e   a u t o s c a l e r .   R e q u i r e d .   T a r g e t   m e m o


Question: What is Parent Options Inherited?

Answer: U s e r n a m e   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n .   U s e r   c o u l d   b e   a   r e g u l a r   u s e r   o r   a   s e r v i c e   a c c o u n t   i n   a   n a m e s p a c e .   G r o u p   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n ,   t h i s   f l a g   c a n   b e   r e p e a t e d   t o   s p e c i f y   m u l t i p l e   g r o u p s .   U I D   t o   i m p e r s o n a t e   f o r   t h e   o p e r a t i o n .   D e f a u l t   c a c h e   d i r e c t o r y   P a t h   t o   a   c e r t   f i l e   f o r   t h e   c e r t i f i c a t e   a u t h o r i t y   P a t h   t o   a   c l i e n t   c e r t i f i c a t e   f i l e   f o r   T L S   P a t h   t o   a   c l i e n t   k e y   f i l e   f o r   T L S   T h e   n a m e   o f   t h e   k u b e c o n f i g   c l u s t e r   t o   u s e   T h e   n a m e   o f   t h e   k u b e c o n f i g   c o n t e x t   t o   u s e   I f   t r u e ,   o p t - o u t   o f   r e s p o n s e   c o m p r e s s i o n   f o r   a l l   r e q u e s t s   t o   t h e   s e r v e r   I f   t r u e ,   t h e   s e r v e r ' s   c e r t i f i c a t e   w i l l   n o t   b e   c h e c k e d   f o r   v a l i d i t y .   T h i s   w i l l   m a k e   y o u r   H T T P S   c o n n e c t i o n s   i n s e c u r e   P a t h   t o   t h e   k u b e c o n f i g   f i l e   t o   u s e   f o r   C L I   r e q u e s t s .   P a t h   t o   t h e   k u b e r c   f i l e   t o   u s e   f o r   p r e f e r e n c e s .   T h i s   c a n   b e   d i s a b l e d   b y   e x p o r t i n g   K U B E C T L _ K U B E R C = f a l s e   f e a t u r e   g a t e   o r   t u r n i n g   o f f   t h e   f e a t u r e   K U B E R C = o f f .   R e q u i r e   s e r v e r   v e r s i o n   t o   m a t c h   c l i e n t   v e r s i o n   I f   p r e s e n t ,   t h e   n a m e s p a c e   s c o p e   f o r   t h i s   C L I   r e q u e s t   P a s s w o r d   f o r   b a s i c   a u t h e n t i c a t


Question: What is See Also?

Answer: k u b e c t l   -   k u b e c t l   c o n t r o l s   t h e   K u b e r n e t e s   c l u s t e r   m a n a g e r   T h i s   p a g e   i s   a u t o m a t i c a l l y   g e n e r a t e d .   I f   y o u   p l a n   t o   r e p o r t   a n   i s s u e   w i t h   t h i s   p a g e ,   m e n t i o n   t h a t   t h e   p a g e   i s   a u t o - g e n e r a t e d   i n   y o u r   i s s u e   d e s c r i p t i o n .   T h e   f i x   m a y   n e e d   t o   h a p p e n   e l s e w h e r e   i n   t h e   K u b e r n e t e s   p r o j e c t .


Question: What is Set Kubelet Parameters Via A Configuration File?

Answer: Set Kubelet Parameters Via A Configuration FileBefore you beginSome steps in this page use the jq tool. If you don't have jq, you can install it via your operating system's software sources, or fetch it from https://jqlang.github.io/jq/.Some steps also involve installing curl, which can be installed via your operating system's software sources.A subset of the kubelet's configuration parameters may be set via an on-disk config file, as a substitute for command-line flags.Providing parameters via a config file is the recommended approach because it simplifies node deployment and configuration management.Create the config fileThe subset of the kubelet's configuration that can be configured via a file is defined by the KubeletConfiguration struct.The configuration file must be a JSON or YAML representation of the parameters in this struct. Make sure the kubelet has read permissions on the file.Here is an example of what this file might look like:apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration address: "192.168.0.8" port: 20250 serializeImagePulls: false evictionHard: memory.available: "100Mi" nodefs.available: "10%" nodefs.inodesFree: "5%" imagefs.available: "15%" imagefs.inodesFree: "5%" In this example, the kubelet is configured with the following settings:address: The kubelet will serve on IP address 192.168.0.8.port: The kubelet will serve on port 20250.serializeImagePulls: Image pulls will be done in parallel.evictionHard: The kubelet will evict Pods under one of the following conditions:When the node's available memory drops below 100MiB.When the node's main filesystem's available space is less than 10%.When the image filesystem's available space is less than 15%.When more than 95% of the node's main filesystem's inodes are in use.Note:In the example, by changing the default value of only one parameter for evictionHard, the default values of other parameters will not be inherited and will be set to zero. In order to provide custom values, you should provide all the threshold values respectively. Alternatively, you can set the MergeDefaultEvictionSettings to true in the kubelet configuration file, if any parameter is changed then the other parameters will inherit their default values instead of 0.The imagefs is an optional filesystem that container runtimes use to store container images and container writable layers.Start a kubelet process configured via the config fileNote:If you use kubeadm to initialize your cluster, use the kubelet-config while creating your cluster with kubeadm init. See configuring kubelet using kubeadm for details.Start the kubelet with the --config flag set to the path of the kubelet's config file. The kubelet will then load its config from this file.Note that command line flags which target the same value as a config file will override that value. This helps ensure backwards compatibility with the command-line API.Note that relative file paths in the kubelet config file are resolved relative to the


Question: How does Set Kubelet Parameters Via A Configuration File work?

Answer: Set Kubelet Parameters Via A Configuration FileBefore you beginSome steps in this page use the jq tool. If you don't have jq, you can install it via your operating system's software sources, or fetch it from https://jqlang.github.io/jq/.Some steps also involve installing curl, which can be installed via your operating system's software sources.A subset of the kubelet's configuration parameters may be set via an on-disk config file, as a substitute for command-line flags.Providing parameters via a config file is the recommended approach because it simplifies node deployment and configuration management.Create the config fileThe subset of the kubelet's configuration that can be configured via a file is defined by the KubeletConfiguration struct.The configuration file must be a JSON or YAML representation of the parameters in this struct. Make sure the kubelet has read permissions on the file.Here is an example of what this file might look like:apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration address: "192.168.0.8" port: 20250 serializeImagePulls: false evictionHard: memory.available: "100Mi" nodefs.available: "10%" nodefs.inodesFree: "5%" imagefs.available: "15%" imagefs.inodesFree: "5%" In this example, the kubelet is configured with the following settings:address: The kubelet will serve on IP address 192.168.0.8.port: The kubelet will serve on port 20250.serializeImagePulls: Image pulls will be done in parallel.evictionHard: The kubelet will evict Pods under one of the following conditions:When the node's available memory drops below 100MiB.When the node's main filesystem's available space is less than 10%.When the image filesystem's available space is less than 15%.When more than 95% of the node's main filesystem's inodes are in use.Note:In the example, by changing the default value of only one parameter for evictionHard, the default values of other parameters will not be inherited and will be set to zero. In order to provide custom values, you should provide all the threshold values respectively. Alternatively, you can set the MergeDefaultEvictionSettings to true in the kubelet configuration file, if any parameter is changed then the other parameters will inherit their default values instead of 0.The imagefs is an optional filesystem that container runtimes use to store container images and container writable layers.Start a kubelet process configured via the config fileNote:If you use kubeadm to initialize your cluster, use the kubelet-config while creating your cluster with kubeadm init. See configuring kubelet using kubeadm for details.Start the kubelet with the --config flag set to the path of the kubelet's config file. The kubelet will then load its config from this file.Note that command line flags which target the same value as a config file will override that value. This helps ensure backwards compatibility with the command-line API.Note that relative file paths in the kubelet config file are resolved relative to the


Question: When would you use Set Kubelet Parameters Via A Configuration File?

Answer: Set Kubelet Parameters Via A Configuration FileBefore you beginSome steps in this page use the jq tool. If you don't have jq, you can install it via your operating system's software sources, or fetch it from https://jqlang.github.io/jq/.Some steps also involve installing curl, which can be installed via your operating system's software sources.A subset of the kubelet's configuration parameters may be set via an on-disk config file, as a substitute for command-line flags.Providing parameters via a config file is the recommended approach because it simplifies node deployment and configuration management.Create the config fileThe subset of the kubelet's configuration that can be configured via a file is defined by the KubeletConfiguration struct.The configuration file must be a JSON or YAML representation of the parameters in this struct. Make sure the kubelet has read permissions on the file.Here is an example of what this file might look like:apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration address: "192.168.0.8" port: 20250 serializeImagePulls: false evictionHard: memory.available: "100Mi" nodefs.available: "10%" nodefs.inodesFree: "5%" imagefs.available: "15%" imagefs.inodesFree: "5%" In this example, the kubelet is configured with the following settings:address: The kubelet will serve on IP address 192.168.0.8.port: The kubelet will serve on port 20250.serializeImagePulls: Image pulls will be done in parallel.evictionHard: The kubelet will evict Pods under one of the following conditions:When the node's available memory drops below 100MiB.When the node's main filesystem's available space is less than 10%.When the image filesystem's available space is less than 15%.When more than 95% of the node's main filesystem's inodes are in use.Note:In the example, by changing the default value of only one parameter for evictionHard, the default values of other parameters will not be inherited and will be set to zero. In order to provide custom values, you should provide all the threshold values respectively. Alternatively, you can set the MergeDefaultEvictionSettings to true in the kubelet configuration file, if any parameter is changed then the other parameters will inherit their default values instead of 0.The imagefs is an optional filesystem that container runtimes use to store container images and container writable layers.Start a kubelet process configured via the config fileNote:If you use kubeadm to initialize your cluster, use the kubelet-config while creating your cluster with kubeadm init. See configuring kubelet using kubeadm for details.Start the kubelet with the --config flag set to the path of the kubelet's config file. The kubelet will then load its config from this file.Note that command line flags which target the same value as a config file will override that value. This helps ensure backwards compatibility with the command-line API.Note that relative file paths in the kubelet config file are resolved relative to the


Question: What are the benefits of Set Kubelet Parameters Via A Configuration File?

Answer: Set Kubelet Parameters Via A Configuration FileBefore you beginSome steps in this page use the jq tool. If you don't have jq, you can install it via your operating system's software sources, or fetch it from https://jqlang.github.io/jq/.Some steps also involve installing curl, which can be installed via your operating system's software sources.A subset of the kubelet's configuration parameters may be set via an on-disk config file, as a substitute for command-line flags.Providing parameters via a config file is the recommended approach because it simplifies node deployment and configuration management.Create the config fileThe subset of the kubelet's configuration that can be configured via a file is defined by the KubeletConfiguration struct.The configuration file must be a JSON or YAML representation of the parameters in this struct. Make sure the kubelet has read permissions on the file.Here is an example of what this file might look like:apiVersion: kubelet.config.k8s.io/v1beta1 kind: KubeletConfiguration address: "192.168.0.8" port: 20250 serializeImagePulls: false evictionHard: memory.available: "100Mi" nodefs.available: "10%" nodefs.inodesFree: "5%" imagefs.available: "15%" imagefs.inodesFree: "5%" In this example, the kubelet is configured with the following settings:address: The kubelet will serve on IP address 192.168.0.8.port: The kubelet will serve on port 20250.serializeImagePulls: Image pulls will be done in parallel.evictionHard: The kubelet will evict Pods under one of the following conditions:When the node's available memory drops below 100MiB.When the node's main filesystem's available space is less than 10%.When the image filesystem's available space is less than 15%.When more than 95% of the node's main filesystem's inodes are in use.Note:In the example, by changing the default value of only one parameter for evictionHard, the default values of other parameters will not be inherited and will be set to zero. In order to provide custom values, you should provide all the threshold values respectively. Alternatively, you can set the MergeDefaultEvictionSettings to true in the kubelet configuration file, if any parameter is changed then the other parameters will inherit their default values instead of 0.The imagefs is an optional filesystem that container runtimes use to store container images and container writable layers.Start a kubelet process configured via the config fileNote:If you use kubeadm to initialize your cluster, use the kubelet-config while creating your cluster with kubeadm init. See configuring kubelet using kubeadm for details.Start the kubelet with the --config flag set to the path of the kubelet's config file. The kubelet will then load its config from this file.Note that command line flags which target the same value as a config file will override that value. This helps ensure backwards compatibility with the command-line API.Note that relative file paths in the kubelet config file are resolved relative to the


Question: What is Before you begin?

Answer: S o m e   s t e p s   i n   t h i s   p a g e   u s e   t h e   j q   t o o l .   I f   y o u   d o n ' t   h a v e   j q ,   y o u   c a n   i n s t a l l   i t   v i a   y o u r   o p e r a t i n g   s y s t e m ' s   s o f t w a r e   s o u r c e s ,   o r   f e t c h   i t   f r o m   h t t p s : / / j q l a n g . g i t h u b . i o / j q / .   S o m e   s t e p s   a l s o   i n v o l v e   i n s t a l l i n g   c u r l ,   w h i c h   c a n   b e   i n s t a l l e d   v i a   y o u r   o p e r a t i n g   s y s t e m ' s   s o f t w a r e   s o u r c e s .   A   s u b s e t   o f   t h e   k u b e l e t ' s   c o n f i g u r a t i o n   p a r a m e t e r s   m a y   b e   s e t   v i a   a n   o n - d i s k   c o n f i g   f i l e ,   a s   a   s u b s t i t u t e   f o r   c o m m a n d - l i n e   f l a g s .   P r o v i d i n g   p a r a m e t e r s   v i a   a   c o n f i g   f i l e   i s   t h e   r e c o m m e n d e d   a p p r o a c h   b e c a u s e   i t   s i m p l i f i e s   n o d e   d e p l o y m e n t   a n d   c o n f i g u r a t i o n   m a n a g e m e n t .


Question: What is Create the config file?

Answer: T h e   s u b s e t   o f   t h e   k u b e l e t ' s   c o n f i g u r a t i o n   t h a t   c a n   b e   c o n f i g u r e d   v i a   a   f i l e   i s   d e f i n e d   b y   t h e   K u b e l e t C o n f i g u r a t i o n   s t r u c t .   T h e   c o n f i g u r a t i o n   f i l e   m u s t   b e   a   J S O N   o r   Y A M L   r e p r e s e n t a t i o n   o f   t h e   p a r a m e t e r s   i n   t h i s   s t r u c t .   M a k e   s u r e   t h e   k u b e l e t   h a s   r e a d   p e r m i s s i o n s   o n   t h e   f i l e .   H e r e   i s   a n   e x a m p l e   o f   w h a t   t h i s   f i l e   m i g h t   l o o k   l i k e :   a p i V e r s i o n :   k u b e l e t . c o n f i g . k 8 s . i o / v 1 b e t a 1   k i n d :   K u b e l e t C o n f i g u r a t i o n   a d d r e s s :   " 1 9 2 . 1 6 8 . 0 . 8 "   p o r t :   2 0 2 5 0   s e r i a l i z e I m a g e P u l l s :   f a l s e   e v i c t i o n H a r d :   m e m o r y . a v a i l a b l e :   " 1 0 0 M i "   n o d e f s . a v a i l a b l e :   " 1 0 % "   n o d e f s . i n o d e s F r e e :   " 5 % "   i m a g e f s . a v a i l a b l e :   " 1 5 % "   i m a g e f s . i n o d e s F r e e :   " 5 % "   I n   t h i s   e x a m p l e ,   t h e   k u b e l e t   i s   c o n f i g u r e d   w i t h   t h e   f o l l o w i n g   s e t t i n g s :   a d d r e s s :   T h e   k u b e l e t   w i l l   s e r v e   o n   I P   a d d r e s s   1 9 2 . 1 6 8 . 0 . 8 . p o r t :   T h e   k u b e l e t   w i l l   s e r v e   o n   p o r t   2 0 2 5 0 . s e r i a l i z e I m a g e P u l l s :   I m a g e   p u l l s   w i l l   b e   d o n e   i n   p a r a l l e l . e v i c t i o n H a r d :   T h e   k u b e l e t   w i l l   e v i c t   P o d s   u n d e r   o n e   o f   t h e   f o l l o w i n g   c o n d i t i o n s : W h e n   t h e   n o d e ' s   a v a i l a b l e   m e m o r y   d r o p s   b e l o w   1 0 0 M i B . W h e n   t h e   n o d e ' s   m a i n   f i l e s y s t e m ' s   a v a i l a


Question: What is Note:?

Answer: T h e   i m a g e f s   i s   a n   o p t i o n a l   f i l e s y s t e m   t h a t   c o n t a i n e r   r u n t i m e s   u s e   t o   s t o r e   c o n t a i n e r   i m a g e s   a n d   c o n t a i n e r   w r i t a b l e   l a y e r s .


Question: What is Note:?

Answer: S t a r t   t h e   k u b e l e t   w i t h   t h e   - - c o n f i g   f l a g   s e t   t o   t h e   p a t h   o f   t h e   k u b e l e t ' s   c o n f i g   f i l e .   T h e   k u b e l e t   w i l l   t h e n   l o a d   i t s   c o n f i g   f r o m   t h i s   f i l e .   N o t e   t h a t   c o m m a n d   l i n e   f l a g s   w h i c h   t a r g e t   t h e   s a m e   v a l u e   a s   a   c o n f i g   f i l e   w i l l   o v e r r i d e   t h a t   v a l u e .   T h i s   h e l p s   e n s u r e   b a c k w a r d s   c o m p a t i b i l i t y   w i t h   t h e   c o m m a n d - l i n e   A P I .   N o t e   t h a t   r e l a t i v e   f i l e   p a t h s   i n   t h e   k u b e l e t   c o n f i g   f i l e   a r e   r e s o l v e d   r e l a t i v e   t o   t h e   l o c a t i o n   o f   t h e   k u b e l e t   c o n f i g   f i l e ,   w h e r e a s   r e l a t i v e   p a t h s   i n   c o m m a n d   l i n e   f l a g s   a r e   r e s o l v e d   r e l a t i v e   t o   t h e   k u b e l e t ' s   c u r r e n t   w o r k i n g   d i r e c t o r y .   N o t e   t h a t   s o m e   d e f a u l t   v a l u e s   d i f f e r   b e t w e e n   c o m m a n d - l i n e   f l a g s   a n d   t h e   k u b e l e t   c o n f i g   f i l e .   I f   - - c o n f i g   i s   p r o v i d e d   a n d   t h e   v a l u e s   a r e   n o t   s p e c i f i e d   v i a   t h e   c o m m a n d   l i n e ,   t h e   d e f a u l t s   f o r   t h e   K u b e l e t C o n f i g u r a t i o n   v e r s i o n   a p p l y .   I n   t h e   a b o v e   e x a m p l e ,   t h i s   v e r s i o n   i s   k u b e l e t . c o n f i g . k 8 s . i o / v 1 b e t a 1 .


Question: What is Drop-in directory for kubelet configuration files?

Answer: Y o u   c a n   s p e c i f y   a   d r o p - i n   c o n f i g u r a t i o n   d i r e c t o r y   f o r   t h e   k u b e l e t .   B y   d e f a u l t ,   t h e   k u b e l e t   d o e s   n o t   l o o k   f o r   d r o p - i n   c o n f i g u r a t i o n   f i l e s   a n y w h e r e   -   y o u   m u s t   s p e c i f y   a   p a t h .   F o r   e x a m p l e :   - - c o n f i g - d i r = / e t c / k u b e r n e t e s / k u b e l e t . c o n f . d   F o r   K u b e r n e t e s   v 1 . 2 8   t o   v 1 . 2 9 ,   y o u   c a n   o n l y   s p e c i f y   - - c o n f i g - d i r   i f   y o u   a l s o   s e t   t h e   e n v i r o n m e n t   v a r i a b l e   K U B E L E T _ C O N F I G _ D R O P I N _ D I R _ A L P H A   f o r   t h e   k u b e l e t   p r o c e s s   ( t h e   v a l u e   o f   t h a t   v a r i a b l e   d o e s   n o t   m a t t e r ) .


Question: What is Note:?

Answer: T h e   k u b e l e t   p r o c e s s e s   f i l e s   i n   i t s   c o n f i g   d r o p - i n   d i r e c t o r y   b y   s o r t i n g   t h e   e n t i r e   f i l e   n a m e   a l p h a n u m e r i c a l l y .   F o r   i n s t a n c e ,   0 0 - k u b e l e t . c o n f   i s   p r o c e s s e d   f i r s t ,   a n d   t h e n   o v e r r i d d e n   w i t h   a   f i l e   n a m e d   0 1 - k u b e l e t . c o n f .   T h e s e   f i l e s   m a y   c o n t a i n   p a r t i a l   c o n f i g u r a t i o n s   b u t   s h o u l d   n o t   b e   i n v a l i d   a n d   m u s t   i n c l u d e   t y p e   m e t a d a t a ,   s p e c i f i c a l l y   a p i V e r s i o n   a n d   k i n d .   V a l i d a t i o n   i s   o n l y   p e r f o r m e d   o n   t h e   f i n a l   r e s u l t i n g   c o n f i g u r a t i o n   s t r u c t u r e   s t o r e d   i n t e r n a l l y   i n   t h e   k u b e l e t .   T h i s   o f f e r s   f l e x i b i l i t y   i n   m a n a g i n g   a n d   m e r g i n g   k u b e l e t   c o n f i g u r a t i o n s   f r o m   d i f f e r e n t   s o u r c e s   w h i l e   p r e v e n t i n g   u n d e s i r a b l e   c o n f i g u r a t i o n s .   H o w e v e r ,   i t   i s   i m p o r t a n t   t o   n o t e   t h a t   b e h a v i o r   v a r i e s   b a s e d   o n   t h e   d a t a   t y p e   o f   t h e   c o n f i g u r a t i o n   f i e l d s .   D i f f e r e n t   d a t a   t y p e s   i n   t h e   k u b e l e t   c o n f i g u r a t i o n   s t r u c t u r e   m e r g e   d i f f e r e n t l y .   S e e   t h e   r e f e r e n c e   d o c u m e n t   f o r   m o r e   i n f o r m a t i o n .


Question: What is Kubelet configuration merging order?

Answer: O n   s t a r t u p ,   t h e   k u b e l e t   m e r g e s   c o n f i g u r a t i o n   f r o m :   F e a t u r e   g a t e s   s p e c i f i e d   o v e r   t h e   c o m m a n d   l i n e   ( l o w e s t   p r e c e d e n c e ) . T h e   k u b e l e t   c o n f i g u r a t i o n . D r o p - i n   c o n f i g u r a t i o n   f i l e s ,   a c c o r d i n g   t o   s o r t   o r d e r . C o m m a n d   l i n e   a r g u m e n t s   e x c l u d i n g   f e a t u r e   g a t e s   ( h i g h e s t   p r e c e d e n c e ) .


Question: What is Viewing the kubelet configuration?

Answer: S i n c e   t h e   c o n f i g u r a t i o n   c o u l d   n o w   b e   s p r e a d   o v e r   m u l t i p l e   f i l e s   w i t h   t h i s   f e a t u r e ,   i f   s o m e o n e   w a n t s   t o   i n s p e c t   t h e   f i n a l   a c t u a t e d   c o n f i g u r a t i o n ,   t h e y   c a n   f o l l o w   t h e s e   s t e p s   t o   i n s p e c t   t h e   k u b e l e t   c o n f i g u r a t i o n :   S t a r t   a   p r o x y   s e r v e r   u s i n g   k u b e c t l   p r o x y   i n   y o u r   t e r m i n a l . k u b e c t l   p r o x y   W h i c h   g i v e s   o u t p u t   l i k e : S t a r t i n g   t o   s e r v e   o n   1 2 7 . 0 . 0 . 1 : 8 0 0 1   O p e n   a n o t h e r   t e r m i n a l   w i n d o w   a n d   u s e   c u r l   t o   f e t c h   t h e   k u b e l e t   c o n f i g u r a t i o n .   R e p l a c e   < n o d e - n a m e >   w i t h   t h e   a c t u a l   n a m e   o f   y o u r   n o d e : c u r l   - X   G E T   h t t p : / / 1 2 7 . 0 . 0 . 1 : 8 0 0 1 / a p i / v 1 / n o d e s / < n o d e - n a m e > / p r o x y / c o n f i g z   |   j q   .   {   " k u b e l e t c o n f i g " :   {   " e n a b l e S e r v e r " :   t r u e ,   " s t a t i c P o d P a t h " :   " / v a r / r u n / k u b e r n e t e s / s t a t i c - p o d s " ,   " s y n c F r e q u e n c y " :   " 1 m 0 s " ,   " f i l e C h e c k F r e q u e n c y " :   " 2 0 s " ,   " h t t p C h e c k F r e q u e n c y " :   " 2 0 s " ,   " a d d r e s s " :   " 1 9 2 . 1 6 8 . 1 . 1 6 " ,   " p o r t " :   1 0 2 5 0 ,   " r e a d O n l y P o r t " :   1 0 2 5 5 ,   " t l s C e r t F i l e " :   " / v a r / l i b / k u b e l e t / p k i / k u b e l e t . c r t " ,   " t l s P r i v a t e K e y F i l e " :   " / v a r / l i b / k u b e l e t / p k i / k u b e l e t . k e y " ,   " r o t a t e C e r t i f i c a t e s " :   t r u e ,   " a u t h e n t i c a t i o n " :   {   " x 5 0 9 " :   {   " c l i e n t C A F i l e " :   " / v a r / r u n / k u b e r n e t e s


Question: What is What's next?

Answer: L e a r n   m o r e   a b o u t   k u b e l e t   c o n f i g u r a t i o n   b y   c h e c k i n g   t h e   K u b e l e t C o n f i g u r a t i o n   r e f e r e n c e . L e a r n   m o r e   a b o u t   k u b e l e t   c o n f i g u r a t i o n   m e r g i n g   i n   t h e   r e f e r e n c e   d o c u m e n t .


Question: What is Install Drivers and Allocate Devices with DRA?

Answer: Install Drivers and Allocate Devices with DRAFEATURE STATE: Kubernetes v1.34 [stable] (enabled by default: true)This tutorial shows you how to install Dynamic Resource Allocation (DRA) drivers in your cluster and how to use them in conjunction with the DRA APIs to allocate devices to Pods. This page is intended for cluster administrators.Dynamic Resource Allocation (DRA) lets a cluster manage availability and allocation of hardware resources to satisfy Pod-based claims for hardware requirements and preferences. To support this, a mixture of Kubernetes built-in components (like the Kubernetes scheduler, kubelet, and kube-controller-manager) and third-party drivers from device owners (called DRA drivers) share the responsibility to advertise, allocate, prepare, mount, healthcheck, unprepare, and cleanup resources throughout the Pod lifecycle. These components share information via a series of DRA specific APIs in the resource.k8s.io API group including DeviceClasses, ResourceSlices, ResourceClaims, as well as new fields in the Pod spec itself.ObjectivesDeploy an example DRA driverDeploy a Pod requesting a hardware claim using DRA APIsDelete a Pod that has a claimBefore you beginYour cluster should support RBAC. You can try this tutorial with a cluster using a different authorization mechanism, but in that case you will have to adapt the steps around defining roles and permissions.You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts. If you do not already have a cluster, you can create one by using minikube or you can use one of these Kubernetes playgrounds:iximiuz LabsKillercodaKodeKloudPlay with KubernetesThis tutorial has been tested with Linux nodes, though it may also work with other types of nodes.Your Kubernetes server must be version v1.34.To check the version, enter kubectl version.If your cluster is not currently running Kubernetes 1.34 then please check the documentation for the version of Kubernetes that you plan to use.Explore the initial cluster stateYou can spend some time to observe the initial state of a cluster with DRA enabled, especially if you have not used these APIs extensively before. If you set up a new cluster for this tutorial, with no driver installed and no Pod claims yet to satisfy, the output of these commands won't show any resources.Get a list of DeviceClasses:kubectl get deviceclasses The output is similar to this:No resources found Get a list of ResourceSlices:kubectl get resourceslices The output is similar to this:No resources found Get a list of ResourceClaims and ResourceClaimTemplateskubectl get resourceclaims -A kubectl get resourceclaimtemplates -A The output is similar to this:No resources found No resources found At this point, you have confirmed that DRA is enabled and configured properly in the cluster, and that no


Question: How does Install Drivers and Allocate Devices with DRA work?

Answer: Install Drivers and Allocate Devices with DRAFEATURE STATE: Kubernetes v1.34 [stable] (enabled by default: true)This tutorial shows you how to install Dynamic Resource Allocation (DRA) drivers in your cluster and how to use them in conjunction with the DRA APIs to allocate devices to Pods. This page is intended for cluster administrators.Dynamic Resource Allocation (DRA) lets a cluster manage availability and allocation of hardware resources to satisfy Pod-based claims for hardware requirements and preferences. To support this, a mixture of Kubernetes built-in components (like the Kubernetes scheduler, kubelet, and kube-controller-manager) and third-party drivers from device owners (called DRA drivers) share the responsibility to advertise, allocate, prepare, mount, healthcheck, unprepare, and cleanup resources throughout the Pod lifecycle. These components share information via a series of DRA specific APIs in the resource.k8s.io API group including DeviceClasses, ResourceSlices, ResourceClaims, as well as new fields in the Pod spec itself.ObjectivesDeploy an example DRA driverDeploy a Pod requesting a hardware claim using DRA APIsDelete a Pod that has a claimBefore you beginYour cluster should support RBAC. You can try this tutorial with a cluster using a different authorization mechanism, but in that case you will have to adapt the steps around defining roles and permissions.You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts. If you do not already have a cluster, you can create one by using minikube or you can use one of these Kubernetes playgrounds:iximiuz LabsKillercodaKodeKloudPlay with KubernetesThis tutorial has been tested with Linux nodes, though it may also work with other types of nodes.Your Kubernetes server must be version v1.34.To check the version, enter kubectl version.If your cluster is not currently running Kubernetes 1.34 then please check the documentation for the version of Kubernetes that you plan to use.Explore the initial cluster stateYou can spend some time to observe the initial state of a cluster with DRA enabled, especially if you have not used these APIs extensively before. If you set up a new cluster for this tutorial, with no driver installed and no Pod claims yet to satisfy, the output of these commands won't show any resources.Get a list of DeviceClasses:kubectl get deviceclasses The output is similar to this:No resources found Get a list of ResourceSlices:kubectl get resourceslices The output is similar to this:No resources found Get a list of ResourceClaims and ResourceClaimTemplateskubectl get resourceclaims -A kubectl get resourceclaimtemplates -A The output is similar to this:No resources found No resources found At this point, you have confirmed that DRA is enabled and configured properly in the cluster, and that no


Question: When would you use Install Drivers and Allocate Devices with DRA?

Answer: Install Drivers and Allocate Devices with DRAFEATURE STATE: Kubernetes v1.34 [stable] (enabled by default: true)This tutorial shows you how to install Dynamic Resource Allocation (DRA) drivers in your cluster and how to use them in conjunction with the DRA APIs to allocate devices to Pods. This page is intended for cluster administrators.Dynamic Resource Allocation (DRA) lets a cluster manage availability and allocation of hardware resources to satisfy Pod-based claims for hardware requirements and preferences. To support this, a mixture of Kubernetes built-in components (like the Kubernetes scheduler, kubelet, and kube-controller-manager) and third-party drivers from device owners (called DRA drivers) share the responsibility to advertise, allocate, prepare, mount, healthcheck, unprepare, and cleanup resources throughout the Pod lifecycle. These components share information via a series of DRA specific APIs in the resource.k8s.io API group including DeviceClasses, ResourceSlices, ResourceClaims, as well as new fields in the Pod spec itself.ObjectivesDeploy an example DRA driverDeploy a Pod requesting a hardware claim using DRA APIsDelete a Pod that has a claimBefore you beginYour cluster should support RBAC. You can try this tutorial with a cluster using a different authorization mechanism, but in that case you will have to adapt the steps around defining roles and permissions.You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts. If you do not already have a cluster, you can create one by using minikube or you can use one of these Kubernetes playgrounds:iximiuz LabsKillercodaKodeKloudPlay with KubernetesThis tutorial has been tested with Linux nodes, though it may also work with other types of nodes.Your Kubernetes server must be version v1.34.To check the version, enter kubectl version.If your cluster is not currently running Kubernetes 1.34 then please check the documentation for the version of Kubernetes that you plan to use.Explore the initial cluster stateYou can spend some time to observe the initial state of a cluster with DRA enabled, especially if you have not used these APIs extensively before. If you set up a new cluster for this tutorial, with no driver installed and no Pod claims yet to satisfy, the output of these commands won't show any resources.Get a list of DeviceClasses:kubectl get deviceclasses The output is similar to this:No resources found Get a list of ResourceSlices:kubectl get resourceslices The output is similar to this:No resources found Get a list of ResourceClaims and ResourceClaimTemplateskubectl get resourceclaims -A kubectl get resourceclaimtemplates -A The output is similar to this:No resources found No resources found At this point, you have confirmed that DRA is enabled and configured properly in the cluster, and that no


Question: What are the benefits of Install Drivers and Allocate Devices with DRA?

Answer: Install Drivers and Allocate Devices with DRAFEATURE STATE: Kubernetes v1.34 [stable] (enabled by default: true)This tutorial shows you how to install Dynamic Resource Allocation (DRA) drivers in your cluster and how to use them in conjunction with the DRA APIs to allocate devices to Pods. This page is intended for cluster administrators.Dynamic Resource Allocation (DRA) lets a cluster manage availability and allocation of hardware resources to satisfy Pod-based claims for hardware requirements and preferences. To support this, a mixture of Kubernetes built-in components (like the Kubernetes scheduler, kubelet, and kube-controller-manager) and third-party drivers from device owners (called DRA drivers) share the responsibility to advertise, allocate, prepare, mount, healthcheck, unprepare, and cleanup resources throughout the Pod lifecycle. These components share information via a series of DRA specific APIs in the resource.k8s.io API group including DeviceClasses, ResourceSlices, ResourceClaims, as well as new fields in the Pod spec itself.ObjectivesDeploy an example DRA driverDeploy a Pod requesting a hardware claim using DRA APIsDelete a Pod that has a claimBefore you beginYour cluster should support RBAC. You can try this tutorial with a cluster using a different authorization mechanism, but in that case you will have to adapt the steps around defining roles and permissions.You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutorial on a cluster with at least two nodes that are not acting as control plane hosts. If you do not already have a cluster, you can create one by using minikube or you can use one of these Kubernetes playgrounds:iximiuz LabsKillercodaKodeKloudPlay with KubernetesThis tutorial has been tested with Linux nodes, though it may also work with other types of nodes.Your Kubernetes server must be version v1.34.To check the version, enter kubectl version.If your cluster is not currently running Kubernetes 1.34 then please check the documentation for the version of Kubernetes that you plan to use.Explore the initial cluster stateYou can spend some time to observe the initial state of a cluster with DRA enabled, especially if you have not used these APIs extensively before. If you set up a new cluster for this tutorial, with no driver installed and no Pod claims yet to satisfy, the output of these commands won't show any resources.Get a list of DeviceClasses:kubectl get deviceclasses The output is similar to this:No resources found Get a list of ResourceSlices:kubectl get resourceslices The output is similar to this:No resources found Get a list of ResourceClaims and ResourceClaimTemplateskubectl get resourceclaims -A kubectl get resourceclaimtemplates -A The output is similar to this:No resources found No resources found At this point, you have confirmed that DRA is enabled and configured properly in the cluster, and that no


Question: What is Install Drivers and Allocate Devices with DRA?

Answer: T h i s   t u t o r i a l   s h o w s   y o u   h o w   t o   i n s t a l l   D y n a m i c   R e s o u r c e   A l l o c a t i o n   ( D R A )   d r i v e r s   i n   y o u r   c l u s t e r   a n d   h o w   t o   u s e   t h e m   i n   c o n j u n c t i o n   w i t h   t h e   D R A   A P I s   t o   a l l o c a t e   d e v i c e s   t o   P o d s .   T h i s   p a g e   i s   i n t e n d e d   f o r   c l u s t e r   a d m i n i s t r a t o r s .   D y n a m i c   R e s o u r c e   A l l o c a t i o n   ( D R A )   l e t s   a   c l u s t e r   m a n a g e   a v a i l a b i l i t y   a n d   a l l o c a t i o n   o f   h a r d w a r e   r e s o u r c e s   t o   s a t i s f y   P o d - b a s e d   c l a i m s   f o r   h a r d w a r e   r e q u i r e m e n t s   a n d   p r e f e r e n c e s .   T o   s u p p o r t   t h i s ,   a   m i x t u r e   o f   K u b e r n e t e s   b u i l t - i n   c o m p o n e n t s   ( l i k e   t h e   K u b e r n e t e s   s c h e d u l e r ,   k u b e l e t ,   a n d   k u b e - c o n t r o l l e r - m a n a g e r )   a n d   t h i r d - p a r t y   d r i v e r s   f r o m   d e v i c e   o w n e r s   ( c a l l e d   D R A   d r i v e r s )   s h a r e   t h e   r e s p o n s i b i l i t y   t o   a d v e r t i s e ,   a l l o c a t e ,   p r e p a r e ,   m o u n t ,   h e a l t h c h e c k ,   u n p r e p a r e ,   a n d   c l e a n u p   r e s o u r c e s   t h r o u g h o u t   t h e   P o d   l i f e c y c l e .   T h e s e   c o m p o n e n t s   s h a r e   i n f o r m a t i o n   v i a   a   s e r i e s   o f   D R A   s p e c i f i c   A P I s   i n   t h e   r e s o u r c e . k 8 s . i o   A P I   g r o u p   i n c l u d i n g   D e v i c e C l a s s e s ,   R e s o u r c e S l i c e s ,   R e s o u r c e C l a i m s ,   a s   w e l l   a s   n e w   f i e l d s   i n   t h e   P o d   s p e c   i t s e l f .


Question: What is Objectives?

Answer: D e p l o y   a n   e x a m p l e   D R A   d r i v e r D e p l o y   a   P o d   r e q u e s t i n g   a   h a r d w a r e   c l a i m   u s i n g   D R A   A P I s D e l e t e   a   P o d   t h a t   h a s   a   c l a i m


Question: What is Before you begin?

Answer: Y o u r   c l u s t e r   s h o u l d   s u p p o r t   R B A C .   Y o u   c a n   t r y   t h i s   t u t o r i a l   w i t h   a   c l u s t e r   u s i n g   a   d i f f e r e n t   a u t h o r i z a t i o n   m e c h a n i s m ,   b u t   i n   t h a t   c a s e   y o u   w i l l   h a v e   t o   a d a p t   t h e   s t e p s   a r o u n d   d e f i n i n g   r o l e s   a n d   p e r m i s s i o n s .   Y o u   n e e d   t o   h a v e   a   K u b e r n e t e s   c l u s t e r ,   a n d   t h e   k u b e c t l   c o m m a n d - l i n e   t o o l   m u s t   b e   c o n f i g u r e d   t o   c o m m u n i c a t e   w i t h   y o u r   c l u s t e r .   I t   i s   r e c o m m e n d e d   t o   r u n   t h i s   t u t o r i a l   o n   a   c l u s t e r   w i t h   a t   l e a s t   t w o   n o d e s   t h a t   a r e   n o t   a c t i n g   a s   c o n t r o l   p l a n e   h o s t s .   I f   y o u   d o   n o t   a l r e a d y   h a v e   a   c l u s t e r ,   y o u   c a n   c r e a t e   o n e   b y   u s i n g   m i n i k u b e   o r   y o u   c a n   u s e   o n e   o f   t h e s e   K u b e r n e t e s   p l a y g r o u n d s :   i x i m i u z   L a b s K i l l e r c o d a K o d e K l o u d P l a y   w i t h   K u b e r n e t e s   T h i s   t u t o r i a l   h a s   b e e n   t e s t e d   w i t h   L i n u x   n o d e s ,   t h o u g h   i t   m a y   a l s o   w o r k   w i t h   o t h e r   t y p e s   o f   n o d e s .   T o   c h e c k   t h e   v e r s i o n ,   e n t e r   k u b e c t l   v e r s i o n .   I f   y o u r   c l u s t e r   i s   n o t   c u r r e n t l y   r u n n i n g   K u b e r n e t e s   1 . 3 4   t h e n   p l e a s e   c h e c k   t h e   d o c u m e n t a t i o n   f o r   t h e   v e r s i o n   o f   K u b e r n e t e s   t h a t   y o u   p l a n   t o   u s e .


Question: What is Explore the initial cluster state?

Answer: Y o u   c a n   s p e n d   s o m e   t i m e   t o   o b s e r v e   t h e   i n i t i a l   s t a t e   o f   a   c l u s t e r   w i t h   D R A   e n a b l e d ,   e s p e c i a l l y   i f   y o u   h a v e   n o t   u s e d   t h e s e   A P I s   e x t e n s i v e l y   b e f o r e .   I f   y o u   s e t   u p   a   n e w   c l u s t e r   f o r   t h i s   t u t o r i a l ,   w i t h   n o   d r i v e r   i n s t a l l e d   a n d   n o   P o d   c l a i m s   y e t   t o   s a t i s f y ,   t h e   o u t p u t   o f   t h e s e   c o m m a n d s   w o n ' t   s h o w   a n y   r e s o u r c e s .   G e t   a   l i s t   o f   D e v i c e C l a s s e s : k u b e c t l   g e t   d e v i c e c l a s s e s   T h e   o u t p u t   i s   s i m i l a r   t o   t h i s : N o   r e s o u r c e s   f o u n d   G e t   a   l i s t   o f   R e s o u r c e S l i c e s : k u b e c t l   g e t   r e s o u r c e s l i c e s   T h e   o u t p u t   i s   s i m i l a r   t o   t h i s : N o   r e s o u r c e s   f o u n d   G e t   a   l i s t   o f   R e s o u r c e C l a i m s   a n d   R e s o u r c e C l a i m T e m p l a t e s k u b e c t l   g e t   r e s o u r c e c l a i m s   - A   k u b e c t l   g e t   r e s o u r c e c l a i m t e m p l a t e s   - A   T h e   o u t p u t   i s   s i m i l a r   t o   t h i s : N o   r e s o u r c e s   f o u n d   N o   r e s o u r c e s   f o u n d   G e t   a   l i s t   o f   D e v i c e C l a s s e s :   k u b e c t l   g e t   d e v i c e c l a s s e s   T h e   o u t p u t   i s   s i m i l a r   t o   t h i s :   N o   r e s o u r c e s   f o u n d   G e t   a   l i s t   o f   R e s o u r c e S l i c e s :   k u b e c t l   g e t   r e s o u r c e s l i c e s   T h e   o u t p u t   i s   s i m i l a r   t o   t h i s :   N o   r e s o u r c e s   f o u n d   G e t   a   l i s t   o f   R e s o u r c e C l a i m s   a n d   R e s o u r c e C l a i m T e m p l a t e s   k u b e c t l   g e t   r e s o u r c e c l a i m


Question: What is Install an example DRA driver?

Answer: D R A   d r i v e r s   a r e   t h i r d - p a r t y   a p p l i c a t i o n s   t h a t   r u n   o n   e a c h   n o d e   o f   y o u r   c l u s t e r   t o   i n t e r f a c e   w i t h   t h e   h a r d w a r e   o f   t h a t   n o d e   a n d   K u b e r n e t e s '   b u i l t - i n   D R A   c o m p o n e n t s .   T h e   i n s t a l l a t i o n   p r o c e d u r e   d e p e n d s   o n   t h e   d r i v e r   y o u   c h o o s e ,   b u t   i s   l i k e l y   d e p l o y e d   a s   a   D a e m o n S e t   t o   a l l   o r   a   s e l e c t i o n   o f   t h e   n o d e s   ( u s i n g   s e l e c t o r s   o r   s i m i l a r   m e c h a n i s m s )   i n   y o u r   c l u s t e r .   C h e c k   y o u r   d r i v e r ' s   d o c u m e n t a t i o n   f o r   s p e c i f i c   i n s t a l l a t i o n   i n s t r u c t i o n s ,   w h i c h   m i g h t   i n c l u d e   a   H e l m   c h a r t ,   a   s e t   o f   m a n i f e s t s ,   o r   o t h e r   d e p l o y m e n t   t o o l i n g .   T h i s   t u t o r i a l   u s e s   a n   e x a m p l e   d r i v e r   w h i c h   c a n   b e   f o u n d   i n   t h e   k u b e r n e t e s - s i g s / d r a - e x a m p l e - d r i v e r   r e p o s i t o r y   t o   d e m o n s t r a t e   d r i v e r   i n s t a l l a t i o n .   T h i s   e x a m p l e   d r i v e r   a d v e r t i s e s   s i m u l a t e d   G P U s   t o   K u b e r n e t e s   f o r   y o u r   P o d s   t o   i n t e r a c t   w i t h .


Question: What is Prepare your cluster for driver installation?

Answer: T o   s i m p l i f y   c l e a n u p ,   c r e a t e   a   n a m e s p a c e   n a m e d   d r a - t u t o r i a l :   C r e a t e   t h e   n a m e s p a c e : k u b e c t l   c r e a t e   n a m e s p a c e   d r a - t u t o r i a l   C r e a t e   t h e   n a m e s p a c e :   k u b e c t l   c r e a t e   n a m e s p a c e   d r a - t u t o r i a l   I n   a   p r o d u c t i o n   e n v i r o n m e n t ,   y o u   w o u l d   l i k e l y   b e   u s i n g   a   p r e v i o u s l y   r e l e a s e d   o r   q u a l i f i e d   i m a g e   f r o m   t h e   d r i v e r   v e n d o r   o r   y o u r   o w n   o r g a n i z a t i o n ,   a n d   y o u r   n o d e s   w o u l d   n e e d   t o   h a v e   a c c e s s   t o   t h e   i m a g e   r e g i s t r y   w h e r e   t h e   d r i v e r   i m a g e   i s   h o s t e d .   I n   t h i s   t u t o r i a l ,   y o u   w i l l   u s e   a   p u b l i c l y   r e l e a s e d   i m a g e   o f   t h e   d r a - e x a m p l e - d r i v e r   t o   s i m u l a t e   a c c e s s   t o   a   D R A   d r i v e r   i m a g e .   C o n f i r m   y o u r   n o d e s   h a v e   a c c e s s   t o   t h e   i m a g e   b y   r u n n i n g   t h e   f o l l o w i n g   f r o m   w i t h i n   o n e   o f   y o u r   c l u s t e r ' s   n o d e s : d o c k e r   p u l l   r e g i s t r y . k 8 s . i o / d r a - e x a m p l e - d r i v e r / d r a - e x a m p l e - d r i v e r : v 0 . 2 . 0   C o n f i r m   y o u r   n o d e s   h a v e   a c c e s s   t o   t h e   i m a g e   b y   r u n n i n g   t h e   f o l l o w i n g   f r o m   w i t h i n   o n e   o f   y o u r   c l u s t e r ' s   n o d e s :   d o c k e r   p u l l   r e g i s t r y . k 8 s . i o / d r a - e x a m p l e - d r i v e r / d r a - e x a m p l e - d r i v e r : v 0 . 2 . 0


Question: What is Deploy the DRA driver components?

Answer: F o r   t h i s   t u t o r i a l ,   y o u   w i l l   i n s t a l l   t h e   c r i t i c a l   e x a m p l e   r e s o u r c e   d r i v e r   c o m p o n e n t s   i n d i v i d u a l l y   w i t h   k u b e c t l .   C r e a t e   t h e   D e v i c e C l a s s   r e p r e s e n t i n g   t h e   d e v i c e   t y p e s   t h i s   D R A   d r i v e r   s u p p o r t s : d r a / d r i v e r - i n s t a l l / d e v i c e c l a s s . y a m l   a p i V e r s i o n :   r e s o u r c e . k 8 s . i o / v 1   k i n d :   D e v i c e C l a s s   m e t a d a t a :   n a m e :   g p u . e x a m p l e . c o m   s p e c :   s e l e c t o r s :   -   c e l :   e x p r e s s i o n :   " d e v i c e . d r i v e r   = =   ' g p u . e x a m p l e . c o m ' " k u b e c t l   a p p l y   - - s e r v e r - s i d e   - f   h t t p : / / k 8 s . i o / e x a m p l e s / d r a / d r i v e r - i n s t a l l / d e v i c e c l a s s . y a m l   C r e a t e   t h e   S e r v i c e A c c o u n t ,   C l u s t e r R o l e   a n d   C l u s t e r R o l e B i n d i n g   t h a t   w i l l   b e   u s e d   b y   t h e   d r i v e r   t o   g a i n   p e r m i s s i o n s   t o   i n t e r a c t   w i t h   t h e   K u b e r n e t e s   A P I   o n   t h i s   c l u s t e r : C r e a t e   t h e   S e r v i c e   A c c o u n t : d r a / d r i v e r - i n s t a l l / s e r v i c e a c c o u n t . y a m l   a p i V e r s i o n :   v 1   k i n d :   S e r v i c e A c c o u n t   m e t a d a t a :   n a m e :   d r a - e x a m p l e - d r i v e r - s e r v i c e - a c c o u n t   n a m e s p a c e :   d r a - t u t o r i a l   l a b e l s :   a p p . k u b e r n e t e s . i o / n a m e :   d r a - e x a m p l e - d r i v e r   a p p . k u b e r n e t e s . i o / i n s t a n c e :   d r a - e x a m p l e - d r i v e r k u b e c t l   a p p l y   - - s e r v e r - s i d e   - f   h t t p : / / k 8 s . i o / e x a m p l e s / d r a / d r i v e r - i n s t a l l / s e r v i c e a c c o u n t . y a m l


Question: What is Verify the DRA driver installation?

Answer: G e t   a   l i s t   o f   t h e   P o d s   o f   t h e   D R A   d r i v e r   D a e m o n S e t   a c r o s s   a l l   w o r k e r   n o d e s : k u b e c t l   g e t   p o d   - l   a p p . k u b e r n e t e s . i o / n a m e = d r a - e x a m p l e - d r i v e r   - n   d r a - t u t o r i a l   T h e   o u t p u t   i s   s i m i l a r   t o   t h i s : N A M E   R E A D Y   S T A T U S   R E S T A R T S   A G E   d r a - e x a m p l e - d r i v e r - k u b e l e t p l u g i n - 4 s k 2 x   1 / 1   R u n n i n g   0   1 3 s   d r a - e x a m p l e - d r i v e r - k u b e l e t p l u g i n - c t t r 2   1 / 1   R u n n i n g   0   1 3 s   T h e   i n i t i a l   r e s p o n s i b i l i t y   o f   e a c h   n o d e ' s   l o c a l   D R A   d r i v e r   i s   t o   u p d a t e   t h e   c l u s t e r   w i t h   w h a t   d e v i c e s   a r e   a v a i l a b l e   t o   P o d s   o n   t h a t   n o d e ,   b y   p u b l i s h i n g   i t s   m e t a d a t a   t o   t h e   R e s o u r c e S l i c e s   A P I .   Y o u   c a n   c h e c k   t h a t   A P I   t o   s e e   t h a t   e a c h   n o d e   w i t h   a   d r i v e r   i s   a d v e r t i s i n g   t h e   d e v i c e   c l a s s   i t   r e p r e s e n t s . C h e c k   f o r   a v a i l a b l e   R e s o u r c e S l i c e s : k u b e c t l   g e t   r e s o u r c e s l i c e s   T h e   o u t p u t   i s   s i m i l a r   t o   t h i s : N A M E   N O D E   D R I V E R   P O O L   A G E   k i n d - w o r k e r - g p u . e x a m p l e . c o m - k 6 9 g d   k i n d - w o r k e r   g p u . e x a m p l e . c o m   k i n d - w o r k e r   1 9 s   k i n d - w o r k e r 2 - g p u . e x a m p l e . c o m - q d g p n   k i n d - w o r k e r 2   g p u . e x a m p l e . c o m   k i n d - w o r k e r 2   1 9 s   G e t   a   l i s t   o f   t h e   P o d s   o f   t h e   D R A   d r i v e r   D a e m o n S e t   a c r o s s   a l l   w o r k e r   n o d e s :   k u b e c t l   g e t   p o d   - l   a p p .