Question: What is Create a bootstrap token?

Answer: k u b e a d m   i n i t   c r e a t e s   a   f i r s t   b o o t s t r a p   t o k e n ,   e i t h e r   g e n e r a t e d   a u t o m a t i c a l l y   o r   p r o v i d e d   b y   t h e   u s e r   w i t h   t h e   - - t o k e n   f l a g ;   a s   d o c u m e n t e d   i n   b o o t s t r a p   t o k e n   s p e c i f i c a t i o n ,   t o k e n   s h o u l d   b e   s a v e d   a s   a   s e c r e t   w i t h   n a m e   b o o t s t r a p - t o k e n - < t o k e n - i d >   u n d e r   k u b e - s y s t e m   n a m e s p a c e .   P l e a s e   n o t e   t h a t :   T h e   d e f a u l t   t o k e n   c r e a t e d   b y   k u b e a d m   i n i t   w i l l   b e   u s e d   t o   v a l i d a t e   t e m p o r a r y   u s e r   d u r i n g   T L S   b o o t s t r a p   p r o c e s s ;   t h o s e   u s e r s   w i l l   b e   m e m b e r   o f   s y s t e m : b o o t s t r a p p e r s : k u b e a d m : d e f a u l t - n o d e - t o k e n   g r o u p T h e   t o k e n   h a s   a   l i m i t e d   v a l i d i t y ,   d e f a u l t   2 4   h o u r s   ( t h e   i n t e r v a l   m a y   b e   c h a n g e d   w i t h   t h e   — t o k e n - t t l   f l a g ) A d d i t i o n a l   t o k e n s   c a n   b e   c r e a t e d   w i t h   t h e   k u b e a d m   t o k e n   c o m m a n d ,   t h a t   p r o v i d e   o t h e r   u s e f u l   f u n c t i o n s   f o r   t o k e n   m a n a g e m e n t   a s   w e l l .


Question: What is Allow joining nodes to call CSR API?

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


Question: What is Set up auto approval for new bootstrap tokens?

Answer: K u b e a d m   e n s u r e s   t h a t   t h e   B o o t s t r a p   T o k e n   w i l l   g e t   i t s   C S R   r e q u e s t   a u t o m a t i c a l l y   a p p r o v e d   b y   t h e   c s r a p p r o v e r   c o n t r o l l e r .   T h i s   i s   i m p l e m e n t e d   b y   c r e a t i n g   C l u s t e r R o l e B i n d i n g   n a m e d   k u b e a d m : n o d e - a u t o a p p r o v e - b o o t s t r a p   b e t w e e n   t h e   s y s t e m : b o o t s t r a p p e r s : k u b e a d m : d e f a u l t - n o d e - t o k e n   g r o u p   a n d   t h e   d e f a u l t   r o l e   s y s t e m : c e r t i f i c a t e s . k 8 s . i o : c e r t i f i c a t e s i g n i n g r e q u e s t s : n o d e c l i e n t .   T h e   r o l e   s y s t e m : c e r t i f i c a t e s . k 8 s . i o : c e r t i f i c a t e s i g n i n g r e q u e s t s : n o d e c l i e n t   s h o u l d   b e   c r e a t e d   a s   w e l l ,   g r a n t i n g   P O S T   p e r m i s s i o n   t o   / a p i s / c e r t i f i c a t e s . k 8 s . i o / c e r t i f i c a t e s i g n i n g r e q u e s t s / n o d e c l i e n t .


Question: What is Set up nodes certificate rotation with auto approval?

Answer: K u b e a d m   e n s u r e s   t h a t   c e r t i f i c a t e   r o t a t i o n   i s   e n a b l e d   f o r   n o d e s ,   a n d   t h a t   a   n e w   c e r t i f i c a t e   r e q u e s t   f o r   n o d e s   w i l l   g e t   i t s   C S R   r e q u e s t   a u t o m a t i c a l l y   a p p r o v e d   b y   t h e   c s r a p p r o v e r   c o n t r o l l e r .   T h i s   i s   i m p l e m e n t e d   b y   c r e a t i n g   C l u s t e r R o l e B i n d i n g   n a m e d   k u b e a d m : n o d e - a u t o a p p r o v e - c e r t i f i c a t e - r o t a t i o n   b e t w e e n   t h e   s y s t e m : n o d e s   g r o u p   a n d   t h e   d e f a u l t   r o l e   s y s t e m : c e r t i f i c a t e s . k 8 s . i o : c e r t i f i c a t e s i g n i n g r e q u e s t s : s e l f n o d e c l i e n t .


Question: What is Create the public cluster-info ConfigMap?

Answer: T h i s   p h a s e   c r e a t e s   t h e   c l u s t e r - i n f o   C o n f i g M a p   i n   t h e   k u b e - p u b l i c   n a m e s p a c e .   A d d i t i o n a l l y ,   i t   c r e a t e s   a   R o l e   a n d   a   R o l e B i n d i n g   g r a n t i n g   a c c e s s   t o   t h e   C o n f i g M a p   f o r   u n a u t h e n t i c a t e d   u s e r s   ( i . e .   u s e r s   i n   R B A C   g r o u p   s y s t e m : u n a u t h e n t i c a t e d ) .


Question: What is Install addons?

Answer: K u b e a d m   i n s t a l l s   t h e   i n t e r n a l   D N S   s e r v e r   a n d   t h e   k u b e - p r o x y   a d d o n   c o m p o n e n t s   v i a   t h e   A P I   s e r v e r .


Question: What is proxy?

Answer: A   S e r v i c e A c c o u n t   f o r   k u b e - p r o x y   i s   c r e a t e d   i n   t h e   k u b e - s y s t e m   n a m e s p a c e ;   t h e n   k u b e - p r o x y   i s   d e p l o y e d   a s   a   D a e m o n S e t :   T h e   c r e d e n t i a l s   ( c a . c r t   a n d   t o k e n )   t o   t h e   c o n t r o l   p l a n e   c o m e   f r o m   t h e   S e r v i c e A c c o u n t T h e   l o c a t i o n   ( U R L )   o f   t h e   A P I   s e r v e r   c o m e s   f r o m   a   C o n f i g M a p T h e   k u b e - p r o x y   S e r v i c e A c c o u n t   i s   b o u n d   t o   t h e   p r i v i l e g e s   i n   t h e   s y s t e m : n o d e - p r o x i e r   C l u s t e r R o l e


Question: What is DNS?

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


Question: What is kubeadm join phases internal design?

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


Question: What is Preflight checks?

Answer: k u b e a d m   e x e c u t e s   a   s e t   o f   p r e f l i g h t   c h e c k s   b e f o r e   s t a r t i n g   t h e   j o i n ,   w i t h   t h e   a i m   t o   v e r i f y   p r e c o n d i t i o n s   a n d   a v o i d   c o m m o n   c l u s t e r   s t a r t u p   p r o b l e m s .   A l s o   n o t e   t h a t :   k u b e a d m   j o i n   p r e f l i g h t   c h e c k s   a r e   b a s i c a l l y   a   s u b s e t   o f   k u b e a d m   i n i t   p r e f l i g h t   c h e c k s I f   y o u   a r e   j o i n i n g   a   W i n d o w s   n o d e ,   L i n u x   s p e c i f i c   c o n t r o l s   a r e   s k i p p e d . I n   a n y   c a s e   t h e   u s e r   c a n   s k i p   s p e c i f i c   p r e f l i g h t   c h e c k s   ( o r   e v e n t u a l l y   a l l   p r e f l i g h t   c h e c k s )   w i t h   t h e   - - i g n o r e - p r e f l i g h t - e r r o r s   o p t i o n .


Question: What is Discovery cluster-info?

Answer: T h e r e   a r e   2   m a i n   s c h e m e s   f o r   d i s c o v e r y .   T h e   f i r s t   i s   t o   u s e   a   s h a r e d   t o k e n   a l o n g   w i t h   t h e   I P   a d d r e s s   o f   t h e   A P I   s e r v e r .   T h e   s e c o n d   i s   t o   p r o v i d e   a   f i l e   ( t h a t   i s   a   s u b s e t   o f   t h e   s t a n d a r d   k u b e c o n f i g   f i l e ) .


Question: What is Shared token discovery?

Answer: I f   k u b e a d m   j o i n   i s   i n v o k e d   w i t h   - - d i s c o v e r y - t o k e n ,   t o k e n   d i s c o v e r y   i s   u s e d ;   i n   t h i s   c a s e   t h e   n o d e   b a s i c a l l y   r e t r i e v e s   t h e   c l u s t e r   C A   c e r t i f i c a t e s   f r o m   t h e   c l u s t e r - i n f o   C o n f i g M a p   i n   t h e   k u b e - p u b l i c   n a m e s p a c e .   I n   o r d e r   t o   p r e v e n t   " m a n   i n   t h e   m i d d l e "   a t t a c k s ,   s e v e r a l   s t e p s   a r e   t a k e n :   F i r s t ,   t h e   C A   c e r t i f i c a t e   i s   r e t r i e v e d   v i a   i n s e c u r e   c o n n e c t i o n   ( t h i s   i s   p o s s i b l e   b e c a u s e   k u b e a d m   i n i t   i s   g r a n t e d   a c c e s s   t o   c l u s t e r - i n f o   u s e r s   f o r   s y s t e m : u n a u t h e n t i c a t e d ) T h e n   t h e   C A   c e r t i f i c a t e   g o e s   t h r o u g h   f o l l o w i n g   v a l i d a t i o n   s t e p s : B a s i c   v a l i d a t i o n :   u s i n g   t h e   t o k e n   I D   a g a i n s t   a   J W T   s i g n a t u r e P u b   k e y   v a l i d a t i o n :   u s i n g   p r o v i d e d   - - d i s c o v e r y - t o k e n - c a - c e r t - h a s h .   T h i s   v a l u e   i s   a v a i l a b l e   i n   t h e   o u t p u t   o f   k u b e a d m   i n i t   o r   c a n   b e   c a l c u l a t e d   u s i n g   s t a n d a r d   t o o l s   ( t h e   h a s h   i s   c a l c u l a t e d   o v e r   t h e   b y t e s   o f   t h e   S u b j e c t   P u b l i c   K e y   I n f o   ( S P K I )   o b j e c t   a s   i n   R F C 7 4 6 9 ) .   T h e   - - d i s c o v e r y - t o k e n - c a - c e r t - h a s h   f l a g   m a y   b e   r e p e a t e d   m u l t i p l e   t i m e s   t o   a l l o w   m o r e   t h a n   o n e   p u b l i c   k e y . A s   a n   a d d i t i o n a l   v a l i d a t i o n ,   t h e   C A   c e r t i f i c a t e   i s   r e t r i e


Question: What is File/https discovery?

Answer: I f   k u b e a d m   j o i n   i s   i n v o k e d   w i t h   - - d i s c o v e r y - f i l e ,   f i l e   d i s c o v e r y   i s   u s e d ;   t h i s   f i l e   c a n   b e   a   l o c a l   f i l e   o r   d o w n l o a d e d   v i a   a n   H T T P S   U R L ;   i n   c a s e   o f   H T T P S ,   t h e   h o s t   i n s t a l l e d   C A   b u n d l e   i s   u s e d   t o   v e r i f y   t h e   c o n n e c t i o n .   W i t h   f i l e   d i s c o v e r y ,   t h e   c l u s t e r   C A   c e r t i f i c a t e   i s   p r o v i d e d   i n t o   t h e   f i l e   i t s e l f ;   i n   f a c t ,   t h e   d i s c o v e r y   f i l e   i s   a   k u b e c o n f i g   f i l e   w i t h   o n l y   s e r v e r   a n d   c e r t i f i c a t e - a u t h o r i t y - d a t a   a t t r i b u t e s   s e t ,   a s   d e s c r i b e d   i n   t h e   k u b e a d m   j o i n   r e f e r e n c e   d o c ;   w h e n   t h e   c o n n e c t i o n   w i t h   t h e   c l u s t e r   i s   e s t a b l i s h e d ,   k u b e a d m   t r i e s   t o   a c c e s s   t h e   c l u s t e r - i n f o   C o n f i g M a p ,   a n d   i f   a v a i l a b l e ,   u s e s   i t .


Question: What is TLS Bootstrap?

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


Question: What is Note:?

Answer: T h e   t e m p o r a r y   a u t h e n t i c a t i o n   i s   v a l i d a t e d   a g a i n s t   t h e   t o k e n   s a v e d   d u r i n g   t h e   k u b e a d m   i n i t   p r o c e s s   ( o r   w i t h   a d d i t i o n a l   t o k e n s   c r e a t e d   w i t h   k u b e a d m   t o k e n   c o m m a n d ) T h e   t e m p o r a r y   a u t h e n t i c a t i o n   r e s o l v e s   t o   a   u s e r   m e m b e r   o f   s y s t e m : b o o t s t r a p p e r s : k u b e a d m : d e f a u l t - n o d e - t o k e n   g r o u p   w h i c h   w a s   g r a n t e d   a c c e s s   t o   t h e   C S R   a p i   d u r i n g   t h e   k u b e a d m   i n i t   p r o c e s s T h e   a u t o m a t i c   C S R   a p p r o v a l   i s   m a n a g e d   b y   t h e   c s r a p p r o v e r   c o n t r o l l e r ,   a c c o r d i n g   t o   t h e   c o n f i g u r a t i o n   p r e s e n t   i n   t h e   k u b e a d m   i n i t   p r o c e s s


Question: What is kubeadm upgrade workflow internal design?

Answer: k u b e a d m   u p g r a d e   h a s   s u b - c o m m a n d s   f o r   h a n d l i n g   t h e   u p g r a d e   o f   t h e   K u b e r n e t e s   c l u s t e r   c r e a t e d   b y   k u b e a d m .   Y o u   m u s t   r u n   k u b e a d m   u p g r a d e   a p p l y   o n   a   c o n t r o l   p l a n e   n o d e   ( y o u   c a n   c h o o s e   w h i c h   o n e ) ;   t h i s   s t a r t s   t h e   u p g r a d e   p r o c e s s .   Y o u   t h e n   r u n   k u b e a d m   u p g r a d e   n o d e   o n   a l l   r e m a i n i n g   n o d e s   ( b o t h   w o r k e r   n o d e s   a n d   c o n t r o l   p l a n e   n o d e s ) .   B o t h   k u b e a d m   u p g r a d e   a p p l y   a n d   k u b e a d m   u p g r a d e   n o d e   h a v e   a   p h a s e   s u b c o m m a n d   w h i c h   p r o v i d e s   a c c e s s   t o   t h e   i n t e r n a l   p h a s e s   o f   t h e   u p g r a d e   p r o c e s s .   S e e   k u b e a d m   u p g r a d e   p h a s e   f o r   m o r e   d e t a i l s .   A d d i t i o n a l   u t i l i t y   u p g r a d e   c o m m a n d s   a r e   k u b e a d m   u p g r a d e   p l a n   a n d   k u b e a d m   u p g r a d e   d i f f .   A l l   u p g r a d e   s u b - c o m m a n d s   s u p p o r t   p a s s i n g   a   c o n f i g u r a t i o n   f i l e .


Question: What is kubeadm upgrade plan?

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


Question: What is kubeadm upgrade diff?

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


Question: What is kubeadm upgrade apply?

Answer: k u b e a d m   u p g r a d e   a p p l y   p r e p a r e s   t h e   c l u s t e r   f o r   t h e   u p g r a d e   o f   a l l   n o d e s ,   a n d   a l s o   u p g r a d e s   t h e   c o n t r o l   p l a n e   n o d e   w h e r e   i t ' s   r u n .   T h e   s t e p s   i t   p e r f o r m s   a r e :   R u n s   p r e f l i g h t   c h e c k s   s i m i l a r l y   t o   k u b e a d m   i n i t   a n d   k u b e a d m   j o i n ,   e n s u r i n g   c o n t a i n e r   i m a g e s   a r e   d o w n l o a d e d   a n d   t h e   c l u s t e r   i s   i n   a   g o o d   s t a t e   t o   b e   u p g r a d e d . U p g r a d e s   t h e   c o n t r o l   p l a n e   m a n i f e s t   f i l e s   o n   d i s k   i n   / e t c / k u b e r n e t e s / m a n i f e s t s   a n d   w a i t s   f o r   t h e   k u b e l e t   t o   r e s t a r t   t h e   c o m p o n e n t s   i f   t h e   f i l e s   h a v e   c h a n g e d . U p l o a d s   t h e   u p d a t e d   k u b e a d m   a n d   k u b e l e t   c o n f i g u r a t i o n s   t o   t h e   c l u s t e r   i n   t h e   k u b e a d m - c o n f i g   a n d   t h e   k u b e l e t - c o n f i g   C o n f i g M a p s   ( b o t h   i n   t h e   k u b e - s y s t e m   n a m e s p a c e ) . W r i t e s   u p d a t e d   k u b e l e t   c o n f i g u r a t i o n   f o r   t h i s   n o d e   i n   / v a r / l i b / k u b e l e t / c o n f i g . y a m l ,   a n d   r e a d   t h e   n o d e ' s   / v a r / l i b / k u b e l e t / i n s t a n c e - c o n f i g . y a m l   f i l e   a n d   p a t c h   f i e l d s   l i k e   c o n t a i n e r R u n t i m e E n d p o i n t   f r o m   t h i s   i n s t a n c e   c o n f i g u r a t i o n   i n t o   / v a r / l i b / k u b e l e t / c o n f i g . y a m l . C o n f i g u r e s   b o o t s t r a p   t o k e n   a n d   t h e   c l u s t e r - i n f o   C o n f i g M a p   f o r   R B A C   r u l e s .   T h i s   i s   t h e   s a m e   a s   i n   t h e   k u b e a


Question: What is kubeadm upgrade node?

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


Question: What is kubeadm reset workflow internal design?

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


Question: What is Controllers?

Answer: ControllersIn robotics and automation, a control loop is a non-terminating loop that regulates the state of a system.Here is one example of a control loop: a thermostat in a room.When you set the temperature, that's telling the thermostat about your desired state. The actual room temperature is the current state. The thermostat acts to bring the current state closer to the desired state, by turning equipment on or off.In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state.Controller patternA controller tracks at least one Kubernetes resource type. These objects have a spec field that represents the desired state. The controller(s) for that resource are responsible for making the current state come closer to that desired state.The controller might carry the action out itself; more commonly, in Kubernetes, a controller will send messages to the API server that have useful side effects. You'll see examples of this below.Control via API serverThe Job controller is an example of a Kubernetes built-in controller. Built-in controllers manage state by interacting with the cluster API server.Job is a Kubernetes resource that runs a Pod, or perhaps several Pods, to carry out a task and then stop.(Once scheduled, Pod objects become part of the desired state for a kubelet).When the Job controller sees a new task it makes sure that, somewhere in your cluster, the kubelets on a set of Nodes are running the right number of Pods to get the work done. The Job controller does not run any Pods or containers itself. Instead, the Job controller tells the API server to create or remove Pods. Other components in the control plane act on the new information (there are new Pods to schedule and run), and eventually the work is done.After you create a new Job, the desired state is for that Job to be completed. The Job controller makes the current state for that Job be nearer to your desired state: creating Pods that do the work you wanted for that Job, so that the Job is closer to completion.Controllers also update the objects that configure them. For example: once the work is done for a Job, the Job controller updates that Job object to mark it Finished.(This is a bit like how some thermostats turn a light off to indicate that your room is now at the temperature you set).Direct controlIn contrast with Job, some controllers need to make changes to things outside of your cluster.For example, if you use a control loop to make sure there are enough Nodes in your cluster, then that controller needs something outside the current cluster to set up new Nodes when needed.Controllers that interact with external state find their desired state from the API server, then communicate directly with an external system to bring the current state closer in line.(There actually is a controller that horizontally scales the nodes in your clu


Question: How does Controllers work?

Answer: ControllersIn robotics and automation, a control loop is a non-terminating loop that regulates the state of a system.Here is one example of a control loop: a thermostat in a room.When you set the temperature, that's telling the thermostat about your desired state. The actual room temperature is the current state. The thermostat acts to bring the current state closer to the desired state, by turning equipment on or off.In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state.Controller patternA controller tracks at least one Kubernetes resource type. These objects have a spec field that represents the desired state. The controller(s) for that resource are responsible for making the current state come closer to that desired state.The controller might carry the action out itself; more commonly, in Kubernetes, a controller will send messages to the API server that have useful side effects. You'll see examples of this below.Control via API serverThe Job controller is an example of a Kubernetes built-in controller. Built-in controllers manage state by interacting with the cluster API server.Job is a Kubernetes resource that runs a Pod, or perhaps several Pods, to carry out a task and then stop.(Once scheduled, Pod objects become part of the desired state for a kubelet).When the Job controller sees a new task it makes sure that, somewhere in your cluster, the kubelets on a set of Nodes are running the right number of Pods to get the work done. The Job controller does not run any Pods or containers itself. Instead, the Job controller tells the API server to create or remove Pods. Other components in the control plane act on the new information (there are new Pods to schedule and run), and eventually the work is done.After you create a new Job, the desired state is for that Job to be completed. The Job controller makes the current state for that Job be nearer to your desired state: creating Pods that do the work you wanted for that Job, so that the Job is closer to completion.Controllers also update the objects that configure them. For example: once the work is done for a Job, the Job controller updates that Job object to mark it Finished.(This is a bit like how some thermostats turn a light off to indicate that your room is now at the temperature you set).Direct controlIn contrast with Job, some controllers need to make changes to things outside of your cluster.For example, if you use a control loop to make sure there are enough Nodes in your cluster, then that controller needs something outside the current cluster to set up new Nodes when needed.Controllers that interact with external state find their desired state from the API server, then communicate directly with an external system to bring the current state closer in line.(There actually is a controller that horizontally scales the nodes in your clu


Question: When would you use Controllers?

Answer: ControllersIn robotics and automation, a control loop is a non-terminating loop that regulates the state of a system.Here is one example of a control loop: a thermostat in a room.When you set the temperature, that's telling the thermostat about your desired state. The actual room temperature is the current state. The thermostat acts to bring the current state closer to the desired state, by turning equipment on or off.In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state.Controller patternA controller tracks at least one Kubernetes resource type. These objects have a spec field that represents the desired state. The controller(s) for that resource are responsible for making the current state come closer to that desired state.The controller might carry the action out itself; more commonly, in Kubernetes, a controller will send messages to the API server that have useful side effects. You'll see examples of this below.Control via API serverThe Job controller is an example of a Kubernetes built-in controller. Built-in controllers manage state by interacting with the cluster API server.Job is a Kubernetes resource that runs a Pod, or perhaps several Pods, to carry out a task and then stop.(Once scheduled, Pod objects become part of the desired state for a kubelet).When the Job controller sees a new task it makes sure that, somewhere in your cluster, the kubelets on a set of Nodes are running the right number of Pods to get the work done. The Job controller does not run any Pods or containers itself. Instead, the Job controller tells the API server to create or remove Pods. Other components in the control plane act on the new information (there are new Pods to schedule and run), and eventually the work is done.After you create a new Job, the desired state is for that Job to be completed. The Job controller makes the current state for that Job be nearer to your desired state: creating Pods that do the work you wanted for that Job, so that the Job is closer to completion.Controllers also update the objects that configure them. For example: once the work is done for a Job, the Job controller updates that Job object to mark it Finished.(This is a bit like how some thermostats turn a light off to indicate that your room is now at the temperature you set).Direct controlIn contrast with Job, some controllers need to make changes to things outside of your cluster.For example, if you use a control loop to make sure there are enough Nodes in your cluster, then that controller needs something outside the current cluster to set up new Nodes when needed.Controllers that interact with external state find their desired state from the API server, then communicate directly with an external system to bring the current state closer in line.(There actually is a controller that horizontally scales the nodes in your clu


Question: What are the benefits of Controllers?

Answer: ControllersIn robotics and automation, a control loop is a non-terminating loop that regulates the state of a system.Here is one example of a control loop: a thermostat in a room.When you set the temperature, that's telling the thermostat about your desired state. The actual room temperature is the current state. The thermostat acts to bring the current state closer to the desired state, by turning equipment on or off.In Kubernetes, controllers are control loops that watch the state of your cluster, then make or request changes where needed. Each controller tries to move the current cluster state closer to the desired state.Controller patternA controller tracks at least one Kubernetes resource type. These objects have a spec field that represents the desired state. The controller(s) for that resource are responsible for making the current state come closer to that desired state.The controller might carry the action out itself; more commonly, in Kubernetes, a controller will send messages to the API server that have useful side effects. You'll see examples of this below.Control via API serverThe Job controller is an example of a Kubernetes built-in controller. Built-in controllers manage state by interacting with the cluster API server.Job is a Kubernetes resource that runs a Pod, or perhaps several Pods, to carry out a task and then stop.(Once scheduled, Pod objects become part of the desired state for a kubelet).When the Job controller sees a new task it makes sure that, somewhere in your cluster, the kubelets on a set of Nodes are running the right number of Pods to get the work done. The Job controller does not run any Pods or containers itself. Instead, the Job controller tells the API server to create or remove Pods. Other components in the control plane act on the new information (there are new Pods to schedule and run), and eventually the work is done.After you create a new Job, the desired state is for that Job to be completed. The Job controller makes the current state for that Job be nearer to your desired state: creating Pods that do the work you wanted for that Job, so that the Job is closer to completion.Controllers also update the objects that configure them. For example: once the work is done for a Job, the Job controller updates that Job object to mark it Finished.(This is a bit like how some thermostats turn a light off to indicate that your room is now at the temperature you set).Direct controlIn contrast with Job, some controllers need to make changes to things outside of your cluster.For example, if you use a control loop to make sure there are enough Nodes in your cluster, then that controller needs something outside the current cluster to set up new Nodes when needed.Controllers that interact with external state find their desired state from the API server, then communicate directly with an external system to bring the current state closer in line.(There actually is a controller that horizontally scales the nodes in your clu


Question: What is Controllers?

Answer: I n   r o b o t i c s   a n d   a u t o m a t i o n ,   a   c o n t r o l   l o o p   i s   a   n o n - t e r m i n a t i n g   l o o p   t h a t   r e g u l a t e s   t h e   s t a t e   o f   a   s y s t e m .   H e r e   i s   o n e   e x a m p l e   o f   a   c o n t r o l   l o o p :   a   t h e r m o s t a t   i n   a   r o o m .   W h e n   y o u   s e t   t h e   t e m p e r a t u r e ,   t h a t ' s   t e l l i n g   t h e   t h e r m o s t a t   a b o u t   y o u r   d e s i r e d   s t a t e .   T h e   a c t u a l   r o o m   t e m p e r a t u r e   i s   t h e   c u r r e n t   s t a t e .   T h e   t h e r m o s t a t   a c t s   t o   b r i n g   t h e   c u r r e n t   s t a t e   c l o s e r   t o   t h e   d e s i r e d   s t a t e ,   b y   t u r n i n g   e q u i p m e n t   o n   o r   o f f .


Question: What is Controller pattern?

Answer: A   c o n t r o l l e r   t r a c k s   a t   l e a s t   o n e   K u b e r n e t e s   r e s o u r c e   t y p e .   T h e s e   o b j e c t s   h a v e   a   s p e c   f i e l d   t h a t   r e p r e s e n t s   t h e   d e s i r e d   s t a t e .   T h e   c o n t r o l l e r ( s )   f o r   t h a t   r e s o u r c e   a r e   r e s p o n s i b l e   f o r   m a k i n g   t h e   c u r r e n t   s t a t e   c o m e   c l o s e r   t o   t h a t   d e s i r e d   s t a t e .   T h e   c o n t r o l l e r   m i g h t   c a r r y   t h e   a c t i o n   o u t   i t s e l f ;   m o r e   c o m m o n l y ,   i n   K u b e r n e t e s ,   a   c o n t r o l l e r   w i l l   s e n d   m e s s a g e s   t o   t h e   A P I   s e r v e r   t h a t   h a v e   u s e f u l   s i d e   e f f e c t s .   Y o u ' l l   s e e   e x a m p l e s   o f   t h i s   b e l o w .


Question: What is Control via API server?

Answer: T h e   J o b   c o n t r o l l e r   i s   a n   e x a m p l e   o f   a   K u b e r n e t e s   b u i l t - i n   c o n t r o l l e r .   B u i l t - i n   c o n t r o l l e r s   m a n a g e   s t a t e   b y   i n t e r a c t i n g   w i t h   t h e   c l u s t e r   A P I   s e r v e r .   J o b   i s   a   K u b e r n e t e s   r e s o u r c e   t h a t   r u n s   a   P o d ,   o r   p e r h a p s   s e v e r a l   P o d s ,   t o   c a r r y   o u t   a   t a s k   a n d   t h e n   s t o p .   ( O n c e   s c h e d u l e d ,   P o d   o b j e c t s   b e c o m e   p a r t   o f   t h e   d e s i r e d   s t a t e   f o r   a   k u b e l e t ) .   W h e n   t h e   J o b   c o n t r o l l e r   s e e s   a   n e w   t a s k   i t   m a k e s   s u r e   t h a t ,   s o m e w h e r e   i n   y o u r   c l u s t e r ,   t h e   k u b e l e t s   o n   a   s e t   o f   N o d e s   a r e   r u n n i n g   t h e   r i g h t   n u m b e r   o f   P o d s   t o   g e t   t h e   w o r k   d o n e .   T h e   J o b   c o n t r o l l e r   d o e s   n o t   r u n   a n y   P o d s   o r   c o n t a i n e r s   i t s e l f .   I n s t e a d ,   t h e   J o b   c o n t r o l l e r   t e l l s   t h e   A P I   s e r v e r   t o   c r e a t e   o r   r e m o v e   P o d s .   O t h e r   c o m p o n e n t s   i n   t h e   c o n t r o l   p l a n e   a c t   o n   t h e   n e w   i n f o r m a t i o n   ( t h e r e   a r e   n e w   P o d s   t o   s c h e d u l e   a n d   r u n ) ,   a n d   e v e n t u a l l y   t h e   w o r k   i s   d o n e .   A f t e r   y o u   c r e a t e   a   n e w   J o b ,   t h e   d e s i r e d   s t a t e   i s   f o r   t h a t   J o b   t o   b e   c o m p l e t e d .   T h e   J o b   c o n t r o l l e r   m a k e s   t h e   c u r r e n t   s t a t e   f o r   t h a t   J o b   b e   n e a r e r   t o   y o u r   d e s i r e d   s t a t e :   c r e a t i n g   P o d s   t h a t   d o   t h e   w o r k   y o u   w a n t e d   f o r


Question: What is Direct control?

Answer: I n   c o n t r a s t   w i t h   J o b ,   s o m e   c o n t r o l l e r s   n e e d   t o   m a k e   c h a n g e s   t o   t h i n g s   o u t s i d e   o f   y o u r   c l u s t e r .   F o r   e x a m p l e ,   i f   y o u   u s e   a   c o n t r o l   l o o p   t o   m a k e   s u r e   t h e r e   a r e   e n o u g h   N o d e s   i n   y o u r   c l u s t e r ,   t h e n   t h a t   c o n t r o l l e r   n e e d s   s o m e t h i n g   o u t s i d e   t h e   c u r r e n t   c l u s t e r   t o   s e t   u p   n e w   N o d e s   w h e n   n e e d e d .   C o n t r o l l e r s   t h a t   i n t e r a c t   w i t h   e x t e r n a l   s t a t e   f i n d   t h e i r   d e s i r e d   s t a t e   f r o m   t h e   A P I   s e r v e r ,   t h e n   c o m m u n i c a t e   d i r e c t l y   w i t h   a n   e x t e r n a l   s y s t e m   t o   b r i n g   t h e   c u r r e n t   s t a t e   c l o s e r   i n   l i n e .   ( T h e r e   a c t u a l l y   i s   a   c o n t r o l l e r   t h a t   h o r i z o n t a l l y   s c a l e s   t h e   n o d e s   i n   y o u r   c l u s t e r . )   T h e   i m p o r t a n t   p o i n t   h e r e   i s   t h a t   t h e   c o n t r o l l e r   m a k e s   s o m e   c h a n g e s   t o   b r i n g   a b o u t   y o u r   d e s i r e d   s t a t e ,   a n d   t h e n   r e p o r t s   t h e   c u r r e n t   s t a t e   b a c k   t o   y o u r   c l u s t e r ' s   A P I   s e r v e r .   O t h e r   c o n t r o l   l o o p s   c a n   o b s e r v e   t h a t   r e p o r t e d   d a t a   a n d   t a k e   t h e i r   o w n   a c t i o n s .   I n   t h e   t h e r m o s t a t   e x a m p l e ,   i f   t h e   r o o m   i s   v e r y   c o l d   t h e n   a   d i f f e r e n t   c o n t r o l l e r   m i g h t   a l s o   t u r n   o n   a   f r o s t   p r o t e c t i o n   h e a t e r .   W i t h   K u b e r n e t e s   c l u s t e r s ,   t h e   c o n t r o l   p l a n e   i n d i r e c t l y   w o r k s   w i t h   I P


Question: What is Desired versus current state?

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


Question: What is Design?

Answer: A s   a   t e n e t   o f   i t s   d e s i g n ,   K u b e r n e t e s   u s e s   l o t s   o f   c o n t r o l l e r s   t h a t   e a c h   m a n a g e   a   p a r t i c u l a r   a s p e c t   o f   c l u s t e r   s t a t e .   M o s t   c o m m o n l y ,   a   p a r t i c u l a r   c o n t r o l   l o o p   ( c o n t r o l l e r )   u s e s   o n e   k i n d   o f   r e s o u r c e   a s   i t s   d e s i r e d   s t a t e ,   a n d   h a s   a   d i f f e r e n t   k i n d   o f   r e s o u r c e   t h a t   i t   m a n a g e s   t o   m a k e   t h a t   d e s i r e d   s t a t e   h a p p e n .   F o r   e x a m p l e ,   a   c o n t r o l l e r   f o r   J o b s   t r a c k s   J o b   o b j e c t s   ( t o   d i s c o v e r   n e w   w o r k )   a n d   P o d   o b j e c t s   ( t o   r u n   t h e   J o b s ,   a n d   t h e n   t o   s e e   w h e n   t h e   w o r k   i s   f i n i s h e d ) .   I n   t h i s   c a s e   s o m e t h i n g   e l s e   c r e a t e s   t h e   J o b s ,   w h e r e a s   t h e   J o b   c o n t r o l l e r   c r e a t e s   P o d s .   I t ' s   u s e f u l   t o   h a v e   s i m p l e   c o n t r o l l e r s   r a t h e r   t h a n   o n e ,   m o n o l i t h i c   s e t   o f   c o n t r o l   l o o p s   t h a t   a r e   i n t e r l i n k e d .   C o n t r o l l e r s   c a n   f a i l ,   s o   K u b e r n e t e s   i s   d e s i g n e d   t o   a l l o w   f o r   t h a t .


Question: What is Note:?

Answer: T h e r e   c a n   b e   s e v e r a l   c o n t r o l l e r s   t h a t   c r e a t e   o r   u p d a t e   t h e   s a m e   k i n d   o f   o b j e c t .   B e h i n d   t h e   s c e n e s ,   K u b e r n e t e s   c o n t r o l l e r s   m a k e   s u r e   t h a t   t h e y   o n l y   p a y   a t t e n t i o n   t o   t h e   r e s o u r c e s   l i n k e d   t o   t h e i r   c o n t r o l l i n g   r e s o u r c e .   F o r   e x a m p l e ,   y o u   c a n   h a v e   D e p l o y m e n t s   a n d   J o b s ;   t h e s e   b o t h   c r e a t e   P o d s .   T h e   J o b   c o n t r o l l e r   d o e s   n o t   d e l e t e   t h e   P o d s   t h a t   y o u r   D e p l o y m e n t   c r e a t e d ,   b e c a u s e   t h e r e   i s   i n f o r m a t i o n   ( l a b e l s )   t h e   c o n t r o l l e r s   c a n   u s e   t o   t e l l   t h o s e   P o d s   a p a r t .


Question: What is Ways of running controllers?

Answer: K u b e r n e t e s   c o m e s   w i t h   a   s e t   o f   b u i l t - i n   c o n t r o l l e r s   t h a t   r u n   i n s i d e   t h e   k u b e - c o n t r o l l e r - m a n a g e r .   T h e s e   b u i l t - i n   c o n t r o l l e r s   p r o v i d e   i m p o r t a n t   c o r e   b e h a v i o r s .   T h e   D e p l o y m e n t   c o n t r o l l e r   a n d   J o b   c o n t r o l l e r   a r e   e x a m p l e s   o f   c o n t r o l l e r s   t h a t   c o m e   a s   p a r t   o f   K u b e r n e t e s   i t s e l f   ( " b u i l t - i n "   c o n t r o l l e r s ) .   K u b e r n e t e s   l e t s   y o u   r u n   a   r e s i l i e n t   c o n t r o l   p l a n e ,   s o   t h a t   i f   a n y   o f   t h e   b u i l t - i n   c o n t r o l l e r s   w e r e   t o   f a i l ,   a n o t h e r   p a r t   o f   t h e   c o n t r o l   p l a n e   w i l l   t a k e   o v e r   t h e   w o r k .   Y o u   c a n   f i n d   c o n t r o l l e r s   t h a t   r u n   o u t s i d e   t h e   c o n t r o l   p l a n e ,   t o   e x t e n d   K u b e r n e t e s .   O r ,   i f   y o u   w a n t ,   y o u   c a n   w r i t e   a   n e w   c o n t r o l l e r   y o u r s e l f .   Y o u   c a n   r u n   y o u r   o w n   c o n t r o l l e r   a s   a   s e t   o f   P o d s ,   o r   e x t e r n a l l y   t o   K u b e r n e t e s .   W h a t   f i t s   b e s t   w i l l   d e p e n d   o n   w h a t   t h a t   p a r t i c u l a r   c o n t r o l l e r   d o e s .


Question: What is What's next?

Answer: R e a d   a b o u t   t h e   K u b e r n e t e s   c o n t r o l   p l a n e D i s c o v e r   s o m e   o f   t h e   b a s i c   K u b e r n e t e s   o b j e c t s L e a r n   m o r e   a b o u t   t h e   K u b e r n e t e s   A P I I f   y o u   w a n t   t o   w r i t e   y o u r   o w n   c o n t r o l l e r ,   s e e   K u b e r n e t e s   e x t e n s i o n   p a t t e r n s   a n d   t h e   s a m p l e - c o n t r o l l e r   r e p o s i t o r y .


Question: What is Namespaces?

Answer: NamespacesIn Kubernetes, namespaces provide a mechanism for isolating groups of resources within a single cluster. Names of resources need to be unique within a namespace, but not across namespaces. Namespace-based scoping is applicable only for namespaced objects (e.g. Deployments, Services, etc.) and not for cluster-wide objects (e.g. StorageClass, Nodes, PersistentVolumes, etc.).When to Use Multiple NamespacesNamespaces are intended for use in environments with many users spread across multiple teams, or projects. For clusters with a few to tens of users, you should not need to create or think about namespaces at all. Start using namespaces when you need the features they provide.Namespaces provide a scope for names. Names of resources need to be unique within a namespace, but not across namespaces. Namespaces cannot be nested inside one another and each Kubernetes resource can only be in one namespace.Namespaces are a way to divide cluster resources between multiple users (via resource quota).It is not necessary to use multiple namespaces to separate slightly different resources, such as different versions of the same software: use labels to distinguish resources within the same namespace.Note:For a production cluster, consider not using the default namespace. Instead, make other namespaces and use those.Initial namespacesKubernetes starts with four initial namespaces:defaultKubernetes includes this namespace so that you can start using your new cluster without first creating a namespace.kube-node-leaseThis namespace holds Lease objects associated with each node. Node leases allow the kubelet to send heartbeats so that the control plane can detect node failure.kube-publicThis namespace is readable by all clients (including those not authenticated). This namespace is mostly reserved for cluster usage, in case that some resources should be visible and readable publicly throughout the whole cluster. The public aspect of this namespace is only a convention, not a requirement.kube-systemThe namespace for objects created by the Kubernetes system.Working with NamespacesCreation and deletion of namespaces are described in the Admin Guide documentation for namespaces.Note:Avoid creating namespaces with the prefix kube-, since it is reserved for Kubernetes system namespaces.Viewing namespacesYou can list the current namespaces in a cluster using:kubectl get namespace NAME STATUS AGE default Active 1d kube-node-lease Active 1d kube-public Active 1d kube-system Active 1d Setting the namespace for a requestTo set the namespace for a current request, use the --namespace flag.For example:kubectl run nginx --image=nginx --namespace=<insert-namespace-name-here> kubectl get pods --namespace=<insert-namespace-name-here> Setting the namespace preferenceYou can permanently save the namespace for all subsequent kubectl commands in that context.kubectl config set-context --current --namespace=<insert-namespace-name-here> # Validate it kubectl config view --minify |


Question: How does Namespaces work?

Answer: NamespacesIn Kubernetes, namespaces provide a mechanism for isolating groups of resources within a single cluster. Names of resources need to be unique within a namespace, but not across namespaces. Namespace-based scoping is applicable only for namespaced objects (e.g. Deployments, Services, etc.) and not for cluster-wide objects (e.g. StorageClass, Nodes, PersistentVolumes, etc.).When to Use Multiple NamespacesNamespaces are intended for use in environments with many users spread across multiple teams, or projects. For clusters with a few to tens of users, you should not need to create or think about namespaces at all. Start using namespaces when you need the features they provide.Namespaces provide a scope for names. Names of resources need to be unique within a namespace, but not across namespaces. Namespaces cannot be nested inside one another and each Kubernetes resource can only be in one namespace.Namespaces are a way to divide cluster resources between multiple users (via resource quota).It is not necessary to use multiple namespaces to separate slightly different resources, such as different versions of the same software: use labels to distinguish resources within the same namespace.Note:For a production cluster, consider not using the default namespace. Instead, make other namespaces and use those.Initial namespacesKubernetes starts with four initial namespaces:defaultKubernetes includes this namespace so that you can start using your new cluster without first creating a namespace.kube-node-leaseThis namespace holds Lease objects associated with each node. Node leases allow the kubelet to send heartbeats so that the control plane can detect node failure.kube-publicThis namespace is readable by all clients (including those not authenticated). This namespace is mostly reserved for cluster usage, in case that some resources should be visible and readable publicly throughout the whole cluster. The public aspect of this namespace is only a convention, not a requirement.kube-systemThe namespace for objects created by the Kubernetes system.Working with NamespacesCreation and deletion of namespaces are described in the Admin Guide documentation for namespaces.Note:Avoid creating namespaces with the prefix kube-, since it is reserved for Kubernetes system namespaces.Viewing namespacesYou can list the current namespaces in a cluster using:kubectl get namespace NAME STATUS AGE default Active 1d kube-node-lease Active 1d kube-public Active 1d kube-system Active 1d Setting the namespace for a requestTo set the namespace for a current request, use the --namespace flag.For example:kubectl run nginx --image=nginx --namespace=<insert-namespace-name-here> kubectl get pods --namespace=<insert-namespace-name-here> Setting the namespace preferenceYou can permanently save the namespace for all subsequent kubectl commands in that context.kubectl config set-context --current --namespace=<insert-namespace-name-here> # Validate it kubectl config view --minify |


Question: When would you use Namespaces?

Answer: NamespacesIn Kubernetes, namespaces provide a mechanism for isolating groups of resources within a single cluster. Names of resources need to be unique within a namespace, but not across namespaces. Namespace-based scoping is applicable only for namespaced objects (e.g. Deployments, Services, etc.) and not for cluster-wide objects (e.g. StorageClass, Nodes, PersistentVolumes, etc.).When to Use Multiple NamespacesNamespaces are intended for use in environments with many users spread across multiple teams, or projects. For clusters with a few to tens of users, you should not need to create or think about namespaces at all. Start using namespaces when you need the features they provide.Namespaces provide a scope for names. Names of resources need to be unique within a namespace, but not across namespaces. Namespaces cannot be nested inside one another and each Kubernetes resource can only be in one namespace.Namespaces are a way to divide cluster resources between multiple users (via resource quota).It is not necessary to use multiple namespaces to separate slightly different resources, such as different versions of the same software: use labels to distinguish resources within the same namespace.Note:For a production cluster, consider not using the default namespace. Instead, make other namespaces and use those.Initial namespacesKubernetes starts with four initial namespaces:defaultKubernetes includes this namespace so that you can start using your new cluster without first creating a namespace.kube-node-leaseThis namespace holds Lease objects associated with each node. Node leases allow the kubelet to send heartbeats so that the control plane can detect node failure.kube-publicThis namespace is readable by all clients (including those not authenticated). This namespace is mostly reserved for cluster usage, in case that some resources should be visible and readable publicly throughout the whole cluster. The public aspect of this namespace is only a convention, not a requirement.kube-systemThe namespace for objects created by the Kubernetes system.Working with NamespacesCreation and deletion of namespaces are described in the Admin Guide documentation for namespaces.Note:Avoid creating namespaces with the prefix kube-, since it is reserved for Kubernetes system namespaces.Viewing namespacesYou can list the current namespaces in a cluster using:kubectl get namespace NAME STATUS AGE default Active 1d kube-node-lease Active 1d kube-public Active 1d kube-system Active 1d Setting the namespace for a requestTo set the namespace for a current request, use the --namespace flag.For example:kubectl run nginx --image=nginx --namespace=<insert-namespace-name-here> kubectl get pods --namespace=<insert-namespace-name-here> Setting the namespace preferenceYou can permanently save the namespace for all subsequent kubectl commands in that context.kubectl config set-context --current --namespace=<insert-namespace-name-here> # Validate it kubectl config view --minify |


Question: What are the benefits of Namespaces?

Answer: NamespacesIn Kubernetes, namespaces provide a mechanism for isolating groups of resources within a single cluster. Names of resources need to be unique within a namespace, but not across namespaces. Namespace-based scoping is applicable only for namespaced objects (e.g. Deployments, Services, etc.) and not for cluster-wide objects (e.g. StorageClass, Nodes, PersistentVolumes, etc.).When to Use Multiple NamespacesNamespaces are intended for use in environments with many users spread across multiple teams, or projects. For clusters with a few to tens of users, you should not need to create or think about namespaces at all. Start using namespaces when you need the features they provide.Namespaces provide a scope for names. Names of resources need to be unique within a namespace, but not across namespaces. Namespaces cannot be nested inside one another and each Kubernetes resource can only be in one namespace.Namespaces are a way to divide cluster resources between multiple users (via resource quota).It is not necessary to use multiple namespaces to separate slightly different resources, such as different versions of the same software: use labels to distinguish resources within the same namespace.Note:For a production cluster, consider not using the default namespace. Instead, make other namespaces and use those.Initial namespacesKubernetes starts with four initial namespaces:defaultKubernetes includes this namespace so that you can start using your new cluster without first creating a namespace.kube-node-leaseThis namespace holds Lease objects associated with each node. Node leases allow the kubelet to send heartbeats so that the control plane can detect node failure.kube-publicThis namespace is readable by all clients (including those not authenticated). This namespace is mostly reserved for cluster usage, in case that some resources should be visible and readable publicly throughout the whole cluster. The public aspect of this namespace is only a convention, not a requirement.kube-systemThe namespace for objects created by the Kubernetes system.Working with NamespacesCreation and deletion of namespaces are described in the Admin Guide documentation for namespaces.Note:Avoid creating namespaces with the prefix kube-, since it is reserved for Kubernetes system namespaces.Viewing namespacesYou can list the current namespaces in a cluster using:kubectl get namespace NAME STATUS AGE default Active 1d kube-node-lease Active 1d kube-public Active 1d kube-system Active 1d Setting the namespace for a requestTo set the namespace for a current request, use the --namespace flag.For example:kubectl run nginx --image=nginx --namespace=<insert-namespace-name-here> kubectl get pods --namespace=<insert-namespace-name-here> Setting the namespace preferenceYou can permanently save the namespace for all subsequent kubectl commands in that context.kubectl config set-context --current --namespace=<insert-namespace-name-here> # Validate it kubectl config view --minify |


Question: What is Namespaces?

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


Question: What is When to Use Multiple Namespaces?

Answer: N a m e s p a c e s   a r e   i n t e n d e d   f o r   u s e   i n   e n v i r o n m e n t s   w i t h   m a n y   u s e r s   s p r e a d   a c r o s s   m u l t i p l e   t e a m s ,   o r   p r o j e c t s .   F o r   c l u s t e r s   w i t h   a   f e w   t o   t e n s   o f   u s e r s ,   y o u   s h o u l d   n o t   n e e d   t o   c r e a t e   o r   t h i n k   a b o u t   n a m e s p a c e s   a t   a l l .   S t a r t   u s i n g   n a m e s p a c e s   w h e n   y o u   n e e d   t h e   f e a t u r e s   t h e y   p r o v i d e .   N a m e s p a c e s   p r o v i d e   a   s c o p e   f o r   n a m e s .   N a m e s   o f   r e s o u r c e s   n e e d   t o   b e   u n i q u e   w i t h i n   a   n a m e s p a c e ,   b u t   n o t   a c r o s s   n a m e s p a c e s .   N a m e s p a c e s   c a n n o t   b e   n e s t e d   i n s i d e   o n e   a n o t h e r   a n d   e a c h   K u b e r n e t e s   r e s o u r c e   c a n   o n l y   b e   i n   o n e   n a m e s p a c e .   N a m e s p a c e s   a r e   a   w a y   t o   d i v i d e   c l u s t e r   r e s o u r c e s   b e t w e e n   m u l t i p l e   u s e r s   ( v i a   r e s o u r c e   q u o t a ) .   I t   i s   n o t   n e c e s s a r y   t o   u s e   m u l t i p l e   n a m e s p a c e s   t o   s e p a r a t e   s l i g h t l y   d i f f e r e n t   r e s o u r c e s ,   s u c h   a s   d i f f e r e n t   v e r s i o n s   o f   t h e   s a m e   s o f t w a r e :   u s e   l a b e l s   t o   d i s t i n g u i s h   r e s o u r c e s   w i t h i n   t h e   s a m e   n a m e s p a c e .


Question: What is Initial namespaces?

Answer: K u b e r n e t e s   s t a r t s   w i t h   f o u r   i n i t i a l   n a m e s p a c e s :


Question: What is Working with Namespaces?

Answer: C r e a t i o n   a n d   d e l e t i o n   o f   n a m e s p a c e s   a r e   d e s c r i b e d   i n   t h e   A d m i n   G u i d e   d o c u m e n t a t i o n   f o r   n a m e s p a c e s .


Question: What is Viewing namespaces?

Answer: Y o u   c a n   l i s t   t h e   c u r r e n t   n a m e s p a c e s   i n   a   c l u s t e r   u s i n g :   k u b e c t l   g e t   n a m e s p a c e   N A M E   S T A T U S   A G E   d e f a u l t   A c t i v e   1 d   k u b e - n o d e - l e a s e   A c t i v e   1 d   k u b e - p u b l i c   A c t i v e   1 d   k u b e - s y s t e m   A c t i v e   1 d


Question: What is Setting the namespace for a request?

Answer: T o   s e t   t h e   n a m e s p a c e   f o r   a   c u r r e n t   r e q u e s t ,   u s e   t h e   - - n a m e s p a c e   f l a g .   F o r   e x a m p l e :   k u b e c t l   r u n   n g i n x   - - i m a g e = n g i n x   - - n a m e s p a c e = < i n s e r t - n a m e s p a c e - n a m e - h e r e >   k u b e c t l   g e t   p o d s   - - n a m e s p a c e = < i n s e r t - n a m e s p a c e - n a m e - h e r e >


Question: What is Setting the namespace preference?

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


Question: What is Namespaces and DNS?

Answer: W h e n   y o u   c r e a t e   a   S e r v i c e ,   i t   c r e a t e s   a   c o r r e s p o n d i n g   D N S   e n t r y .   T h i s   e n t r y   i s   o f   t h e   f o r m   < s e r v i c e - n a m e > . < n a m e s p a c e - n a m e > . s v c . c l u s t e r . l o c a l ,   w h i c h   m e a n s   t h a t   i f   a   c o n t a i n e r   o n l y   u s e s   < s e r v i c e - n a m e > ,   i t   w i l l   r e s o l v e   t o   t h e   s e r v i c e   w h i c h   i s   l o c a l   t o   a   n a m e s p a c e .   T h i s   i s   u s e f u l   f o r   u s i n g   t h e   s a m e   c o n f i g u r a t i o n   a c r o s s   m u l t i p l e   n a m e s p a c e s   s u c h   a s   D e v e l o p m e n t ,   S t a g i n g   a n d   P r o d u c t i o n .   I f   y o u   w a n t   t o   r e a c h   a c r o s s   n a m e s p a c e s ,   y o u   n e e d   t o   u s e   t h e   f u l l y   q u a l i f i e d   d o m a i n   n a m e   ( F Q D N ) .   A s   a   r e s u l t ,   a l l   n a m e s p a c e   n a m e s   m u s t   b e   v a l i d   R F C   1 1 2 3   D N S   l a b e l s .


Question: What is Warning:?

Answer: B y   c r e a t i n g   n a m e s p a c e s   w i t h   t h e   s a m e   n a m e   a s   p u b l i c   t o p - l e v e l   d o m a i n s ,   S e r v i c e s   i n   t h e s e   n a m e s p a c e s   c a n   h a v e   s h o r t   D N S   n a m e s   t h a t   o v e r l a p   w i t h   p u b l i c   D N S   r e c o r d s .   W o r k l o a d s   f r o m   a n y   n a m e s p a c e   p e r f o r m i n g   a   D N S   l o o k u p   w i t h o u t   a   t r a i l i n g   d o t   w i l l   b e   r e d i r e c t e d   t o   t h o s e   s e r v i c e s ,   t a k i n g   p r e c e d e n c e   o v e r   p u b l i c   D N S .   T o   m i t i g a t e   t h i s ,   l i m i t   p r i v i l e g e s   f o r   c r e a t i n g   n a m e s p a c e s   t o   t r u s t e d   u s e r s .   I f   r e q u i r e d ,   y o u   c o u l d   a d d i t i o n a l l y   c o n f i g u r e   t h i r d - p a r t y   s e c u r i t y   c o n t r o l s ,   s u c h   a s   a d m i s s i o n   w e b h o o k s ,   t o   b l o c k   c r e a t i n g   a n y   n a m e s p a c e   w i t h   t h e   n a m e   o f   p u b l i c   T L D s .


Question: What is Not all objects are in a namespace?

Answer: M o s t   K u b e r n e t e s   r e s o u r c e s   ( e . g .   p o d s ,   s e r v i c e s ,   r e p l i c a t i o n   c o n t r o l l e r s ,   a n d   o t h e r s )   a r e   i n   s o m e   n a m e s p a c e s .   H o w e v e r   n a m e s p a c e   r e s o u r c e s   a r e   n o t   t h e m s e l v e s   i n   a   n a m e s p a c e .   A n d   l o w - l e v e l   r e s o u r c e s ,   s u c h   a s   n o d e s   a n d   p e r s i s t e n t V o l u m e s ,   a r e   n o t   i n   a n y   n a m e s p a c e .   T o   s e e   w h i c h   K u b e r n e t e s   r e s o u r c e s   a r e   a n d   a r e n ' t   i n   a   n a m e s p a c e :   #   I n   a   n a m e s p a c e   k u b e c t l   a p i - r e s o u r c e s   - - n a m e s p a c e d = t r u e   #   N o t   i n   a   n a m e s p a c e   k u b e c t l   a p i - r e s o u r c e s   - - n a m e s p a c e d = f a l s e


Question: What is Automatic labelling?

Answer: T h e   K u b e r n e t e s   c o n t r o l   p l a n e   s e t s   a n   i m m u t a b l e   l a b e l   k u b e r n e t e s . i o / m e t a d a t a . n a m e   o n   a l l   n a m e s p a c e s .   T h e   v a l u e   o f   t h e   l a b e l   i s   t h e   n a m e s p a c e   n a m e .


Question: What is What's next?

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


Question: What is Configure a Pod to Use a Volume for Storage?

Answer: Configure a Pod to Use a Volume for StorageThis page shows how to configure a Pod to use a Volume for storage.A Container's file system lives only as long as the Container does. So when a Container terminates and restarts, filesystem changes are lost. For more consistent storage that is independent of the Container, you can use a Volume. This is especially important for stateful applications, such as key-value stores (such as Redis) and databases.Before you beginYou 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 KubernetesTo check the version, enter kubectl version.Configure a volume for a PodIn this exercise, you create a Pod that runs one Container. This Pod has a Volume of type emptyDir that lasts for the life of the Pod, even if the Container terminates and restarts. Here is the configuration file for the Pod:pods/storage/redis.yaml apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis volumeMounts: - name: redis-storage mountPath: /data/redis volumes: - name: redis-storage emptyDir: {} Create the Pod:kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml Verify that the Pod's Container is running, and then watch for changes to the Pod:kubectl get pod redis --watch The output looks like this:NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s In another terminal, get a shell to the running Container:kubectl exec -it redis -- /bin/bash In your shell, go to /data/redis, and then create a file:root@redis:/data# cd /data/redis/ root@redis:/data/redis# echo Hello > test-file In your shell, list the running processes:root@redis:/data/redis# apt-get update root@redis:/data/redis# apt-get install procps root@redis:/data/redis# ps aux The output is similar to this:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND redis 1 0.1 0.1 33308 3828 ? Ssl 00:46 0:00 redis-server *:6379 root 12 0.0 0.0 20228 3020 ? Ss 00:47 0:00 /bin/bash root 15 0.0 0.0 17500 2072 ? R+ 00:48 0:00 ps aux In your shell, kill the Redis process:root@redis:/data/redis# kill <pid> where <pid> is the Redis process ID (PID).In your original terminal, watch for changes to the Redis Pod. Eventually, you will see something like this:NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s redis 0/1 Completed 0 6m redis 1/1 Running 1 6m At this point, the Container has terminated and restarted. This is because the Redis Pod has a restartPolicy of Always.Get a shell into the restarted Container:kubectl exec -it redis -- /bin/bash In your shell, go to /data/redis, and verify that test-file is still there.root@redis:/data/redis# cd /data/redis/ root@redis:/data/redis# ls test-file Del


Question: How does Configure a Pod to Use a Volume for Storage work?

Answer: Configure a Pod to Use a Volume for StorageThis page shows how to configure a Pod to use a Volume for storage.A Container's file system lives only as long as the Container does. So when a Container terminates and restarts, filesystem changes are lost. For more consistent storage that is independent of the Container, you can use a Volume. This is especially important for stateful applications, such as key-value stores (such as Redis) and databases.Before you beginYou 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 KubernetesTo check the version, enter kubectl version.Configure a volume for a PodIn this exercise, you create a Pod that runs one Container. This Pod has a Volume of type emptyDir that lasts for the life of the Pod, even if the Container terminates and restarts. Here is the configuration file for the Pod:pods/storage/redis.yaml apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis volumeMounts: - name: redis-storage mountPath: /data/redis volumes: - name: redis-storage emptyDir: {} Create the Pod:kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml Verify that the Pod's Container is running, and then watch for changes to the Pod:kubectl get pod redis --watch The output looks like this:NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s In another terminal, get a shell to the running Container:kubectl exec -it redis -- /bin/bash In your shell, go to /data/redis, and then create a file:root@redis:/data# cd /data/redis/ root@redis:/data/redis# echo Hello > test-file In your shell, list the running processes:root@redis:/data/redis# apt-get update root@redis:/data/redis# apt-get install procps root@redis:/data/redis# ps aux The output is similar to this:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND redis 1 0.1 0.1 33308 3828 ? Ssl 00:46 0:00 redis-server *:6379 root 12 0.0 0.0 20228 3020 ? Ss 00:47 0:00 /bin/bash root 15 0.0 0.0 17500 2072 ? R+ 00:48 0:00 ps aux In your shell, kill the Redis process:root@redis:/data/redis# kill <pid> where <pid> is the Redis process ID (PID).In your original terminal, watch for changes to the Redis Pod. Eventually, you will see something like this:NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s redis 0/1 Completed 0 6m redis 1/1 Running 1 6m At this point, the Container has terminated and restarted. This is because the Redis Pod has a restartPolicy of Always.Get a shell into the restarted Container:kubectl exec -it redis -- /bin/bash In your shell, go to /data/redis, and verify that test-file is still there.root@redis:/data/redis# cd /data/redis/ root@redis:/data/redis# ls test-file Del


Question: When would you use Configure a Pod to Use a Volume for Storage?

Answer: Configure a Pod to Use a Volume for StorageThis page shows how to configure a Pod to use a Volume for storage.A Container's file system lives only as long as the Container does. So when a Container terminates and restarts, filesystem changes are lost. For more consistent storage that is independent of the Container, you can use a Volume. This is especially important for stateful applications, such as key-value stores (such as Redis) and databases.Before you beginYou 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 KubernetesTo check the version, enter kubectl version.Configure a volume for a PodIn this exercise, you create a Pod that runs one Container. This Pod has a Volume of type emptyDir that lasts for the life of the Pod, even if the Container terminates and restarts. Here is the configuration file for the Pod:pods/storage/redis.yaml apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis volumeMounts: - name: redis-storage mountPath: /data/redis volumes: - name: redis-storage emptyDir: {} Create the Pod:kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml Verify that the Pod's Container is running, and then watch for changes to the Pod:kubectl get pod redis --watch The output looks like this:NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s In another terminal, get a shell to the running Container:kubectl exec -it redis -- /bin/bash In your shell, go to /data/redis, and then create a file:root@redis:/data# cd /data/redis/ root@redis:/data/redis# echo Hello > test-file In your shell, list the running processes:root@redis:/data/redis# apt-get update root@redis:/data/redis# apt-get install procps root@redis:/data/redis# ps aux The output is similar to this:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND redis 1 0.1 0.1 33308 3828 ? Ssl 00:46 0:00 redis-server *:6379 root 12 0.0 0.0 20228 3020 ? Ss 00:47 0:00 /bin/bash root 15 0.0 0.0 17500 2072 ? R+ 00:48 0:00 ps aux In your shell, kill the Redis process:root@redis:/data/redis# kill <pid> where <pid> is the Redis process ID (PID).In your original terminal, watch for changes to the Redis Pod. Eventually, you will see something like this:NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s redis 0/1 Completed 0 6m redis 1/1 Running 1 6m At this point, the Container has terminated and restarted. This is because the Redis Pod has a restartPolicy of Always.Get a shell into the restarted Container:kubectl exec -it redis -- /bin/bash In your shell, go to /data/redis, and verify that test-file is still there.root@redis:/data/redis# cd /data/redis/ root@redis:/data/redis# ls test-file Del


Question: What are the benefits of Configure a Pod to Use a Volume for Storage?

Answer: Configure a Pod to Use a Volume for StorageThis page shows how to configure a Pod to use a Volume for storage.A Container's file system lives only as long as the Container does. So when a Container terminates and restarts, filesystem changes are lost. For more consistent storage that is independent of the Container, you can use a Volume. This is especially important for stateful applications, such as key-value stores (such as Redis) and databases.Before you beginYou 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 KubernetesTo check the version, enter kubectl version.Configure a volume for a PodIn this exercise, you create a Pod that runs one Container. This Pod has a Volume of type emptyDir that lasts for the life of the Pod, even if the Container terminates and restarts. Here is the configuration file for the Pod:pods/storage/redis.yaml apiVersion: v1 kind: Pod metadata: name: redis spec: containers: - name: redis image: redis volumeMounts: - name: redis-storage mountPath: /data/redis volumes: - name: redis-storage emptyDir: {} Create the Pod:kubectl apply -f https://k8s.io/examples/pods/storage/redis.yaml Verify that the Pod's Container is running, and then watch for changes to the Pod:kubectl get pod redis --watch The output looks like this:NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s In another terminal, get a shell to the running Container:kubectl exec -it redis -- /bin/bash In your shell, go to /data/redis, and then create a file:root@redis:/data# cd /data/redis/ root@redis:/data/redis# echo Hello > test-file In your shell, list the running processes:root@redis:/data/redis# apt-get update root@redis:/data/redis# apt-get install procps root@redis:/data/redis# ps aux The output is similar to this:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND redis 1 0.1 0.1 33308 3828 ? Ssl 00:46 0:00 redis-server *:6379 root 12 0.0 0.0 20228 3020 ? Ss 00:47 0:00 /bin/bash root 15 0.0 0.0 17500 2072 ? R+ 00:48 0:00 ps aux In your shell, kill the Redis process:root@redis:/data/redis# kill <pid> where <pid> is the Redis process ID (PID).In your original terminal, watch for changes to the Redis Pod. Eventually, you will see something like this:NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s redis 0/1 Completed 0 6m redis 1/1 Running 1 6m At this point, the Container has terminated and restarted. This is because the Redis Pod has a restartPolicy of Always.Get a shell into the restarted Container:kubectl exec -it redis -- /bin/bash In your shell, go to /data/redis, and verify that test-file is still there.root@redis:/data/redis# cd /data/redis/ root@redis:/data/redis# ls test-file Del


Question: What is Configure a Pod to Use a Volume for Storage?

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


Question: What is Before you begin?

Answer: 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 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   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 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 .


Question: What is Configure a volume for a Pod?

Answer: I n   t h i s   e x e r c i s e ,   y o u   c r e a t e   a   P o d   t h a t   r u n s   o n e   C o n t a i n e r .   T h i s   P o d   h a s   a   V o l u m e   o f   t y p e   e m p t y D i r   t h a t   l a s t s   f o r   t h e   l i f e   o f   t h e   P o d ,   e v e n   i f   t h e   C o n t a i n e r   t e r m i n a t e s   a n d   r e s t a r t s .   H e r e   i s   t h e   c o n f i g u r a t i o n   f i l e   f o r   t h e   P o d :   a p i V e r s i o n :   v 1   k i n d :   P o d   m e t a d a t a :   n a m e :   r e d i s   s p e c :   c o n t a i n e r s :   -   n a m e :   r e d i s   i m a g e :   r e d i s   v o l u m e M o u n t s :   -   n a m e :   r e d i s - s t o r a g e   m o u n t P a t h :   / d a t a / r e d i s   v o l u m e s :   -   n a m e :   r e d i s - s t o r a g e   e m p t y D i r :   { }   C r e a t e   t h e   P o d : k u b e c t l   a p p l y   - f   h t t p s : / / k 8 s . i o / e x a m p l e s / p o d s / s t o r a g e / r e d i s . y a m l   V e r i f y   t h a t   t h e   P o d ' s   C o n t a i n e r   i s   r u n n i n g ,   a n d   t h e n   w a t c h   f o r   c h a n g e s   t o   t h e   P o d : k u b e c t l   g e t   p o d   r e d i s   - - w a t c h   T h e   o u t p u t   l o o k s   l i k e   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   r e d i s   1 / 1   R u n n i n g   0   1 3 s   I n   a n o t h e r   t e r m i n a l ,   g e t   a   s h e l l   t o   t h e   r u n n i n g   C o n t a i n e r : k u b e c t l   e x e c   - i t   r e d i s   - -   / b i n / b a s h   I n   y o u r   s h e l l ,   g o   t o   / d a t a / r e d i s ,   a n d   t h e n   c r e a t e   a   f i l e : r o o t @ r e d i s : / d a t a #   c d   / d a t a / r e d i s /   r o o t @ r e d i s : / d a t a / r e d i s #   e c h o   H e l l o   >   t e s t - f i l e   I n   y o u r   s h e l l ,   l i s t   t h e   r u n n i n g   p r o c e s s e s : r o o t @ r e d i s : / d a t a / r e d i s #   a p t - g e t


Question: What is What's next?

Answer: S e e   V o l u m e . S e e   P o d . I n   a d d i t i o n   t o   t h e   l o c a l   d i s k   s t o r a g e   p r o v i d e d   b y   e m p t y D i r ,   K u b e r n e t e s   s u p p o r t s   m a n y   d i f f e r e n t   n e t w o r k - a t t a c h e d   s t o r a g e   s o l u t i o n s ,   i n c l u d i n g   P D   o n   G C E   a n d   E B S   o n   E C 2 ,   w h i c h   a r e   p r e f e r r e d   f o r   c r i t i c a l   d a t a   a n d   w i l l   h a n d l e   d e t a i l s   s u c h   a s   m o u n t i n g   a n d   u n m o u n t i n g   t h e   d e v i c e s   o n   t h e   n o d e s .   S e e   V o l u m e s   f o r   m o r e   d e t a i l s .   S e e   V o l u m e .   S e e   P o d .   I n   a d d i t i o n   t o   t h e   l o c a l   d i s k   s t o r a g e   p r o v i d e d   b y   e m p t y D i r ,   K u b e r n e t e s   s u p p o r t s   m a n y   d i f f e r e n t   n e t w o r k - a t t a c h e d   s t o r a g e   s o l u t i o n s ,   i n c l u d i n g   P D   o n   G C E   a n d   E B S   o n   E C 2 ,   w h i c h   a r e   p r e f e r r e d   f o r   c r i t i c a l   d a t a   a n d   w i l l   h a n d l e   d e t a i l s   s u c h   a s   m o u n t i n g   a n d   u n m o u n t i n g   t h e   d e v i c e s   o n   t h e   n o d e s .   S e e   V o l u m e s   f o r   m o r e   d e t a i l s .


Question: What is Developing and debugging services locally using telepresence?

Answer: Developing and debugging services locally using telepresenceNote: This section links to third party projects that provide functionality required by Kubernetes. The Kubernetes project authors aren't responsible for these projects, which are listed alphabetically. To add a project to this list, read the content guide before submitting a change. More information.Kubernetes applications usually consist of multiple, separate services, each running in its own container. Developing and debugging these services on a remote Kubernetes cluster can be cumbersome, requiring you to get a shell on a running container in order to run debugging tools.telepresence is a tool to ease the process of developing and debugging services locally while proxying the service to a remote Kubernetes cluster. Using telepresence allows you to use custom tools, such as a debugger and IDE, for a local service and provides the service full access to ConfigMap, secrets, and the services running on the remote cluster.This document describes using telepresence to develop and debug services running on a remote cluster locally.Before you beginKubernetes cluster is installedkubectl is configured to communicate with the clusterTelepresence is installedConnecting your local machine to a remote Kubernetes clusterAfter installing telepresence, run telepresence connect to launch its Daemon and connect your local workstation to the cluster.$ telepresence connect Launching Telepresence Daemon ... Connected to context default (https://<cluster public IP>) You can curl services using the Kubernetes syntax e.g. curl -ik https://kubernetes.defaultDeveloping or debugging an existing serviceWhen developing an application on Kubernetes, you typically program or debug a single service. The service might require access to other services for testing and debugging. One option is to use the continuous deployment pipeline, but even the fastest deployment pipeline introduces a delay in the program or debug cycle.Use the telepresence intercept $SERVICE_NAME --port $LOCAL_PORT:$REMOTE_PORT command to create an "intercept" for rerouting remote service traffic.Where:$SERVICE_NAME is the name of your local service$LOCAL_PORT is the port that your service is running on your local workstationAnd $REMOTE_PORT is the port your service listens to in the clusterRunning this command tells Telepresence to send remote traffic to your local service instead of the service in the remote Kubernetes cluster. Make edits to your service source code locally, save, and see the corresponding changes when accessing your remote application take effect immediately. You can also run your local service using a debugger or any other local development tool.How does Telepresence work?Telepresence installs a traffic-agent sidecar next to your existing application's container running in the remote cluster. It then captures all traffic requests going into the Pod, and instead of forwarding this to the application in the remote cluster, it ro


Question: How does Developing and debugging services locally using telepresence work?

Answer: Developing and debugging services locally using telepresenceNote: This section links to third party projects that provide functionality required by Kubernetes. The Kubernetes project authors aren't responsible for these projects, which are listed alphabetically. To add a project to this list, read the content guide before submitting a change. More information.Kubernetes applications usually consist of multiple, separate services, each running in its own container. Developing and debugging these services on a remote Kubernetes cluster can be cumbersome, requiring you to get a shell on a running container in order to run debugging tools.telepresence is a tool to ease the process of developing and debugging services locally while proxying the service to a remote Kubernetes cluster. Using telepresence allows you to use custom tools, such as a debugger and IDE, for a local service and provides the service full access to ConfigMap, secrets, and the services running on the remote cluster.This document describes using telepresence to develop and debug services running on a remote cluster locally.Before you beginKubernetes cluster is installedkubectl is configured to communicate with the clusterTelepresence is installedConnecting your local machine to a remote Kubernetes clusterAfter installing telepresence, run telepresence connect to launch its Daemon and connect your local workstation to the cluster.$ telepresence connect Launching Telepresence Daemon ... Connected to context default (https://<cluster public IP>) You can curl services using the Kubernetes syntax e.g. curl -ik https://kubernetes.defaultDeveloping or debugging an existing serviceWhen developing an application on Kubernetes, you typically program or debug a single service. The service might require access to other services for testing and debugging. One option is to use the continuous deployment pipeline, but even the fastest deployment pipeline introduces a delay in the program or debug cycle.Use the telepresence intercept $SERVICE_NAME --port $LOCAL_PORT:$REMOTE_PORT command to create an "intercept" for rerouting remote service traffic.Where:$SERVICE_NAME is the name of your local service$LOCAL_PORT is the port that your service is running on your local workstationAnd $REMOTE_PORT is the port your service listens to in the clusterRunning this command tells Telepresence to send remote traffic to your local service instead of the service in the remote Kubernetes cluster. Make edits to your service source code locally, save, and see the corresponding changes when accessing your remote application take effect immediately. You can also run your local service using a debugger or any other local development tool.How does Telepresence work?Telepresence installs a traffic-agent sidecar next to your existing application's container running in the remote cluster. It then captures all traffic requests going into the Pod, and instead of forwarding this to the application in the remote cluster, it ro


Question: When would you use Developing and debugging services locally using telepresence?

Answer: Developing and debugging services locally using telepresenceNote: This section links to third party projects that provide functionality required by Kubernetes. The Kubernetes project authors aren't responsible for these projects, which are listed alphabetically. To add a project to this list, read the content guide before submitting a change. More information.Kubernetes applications usually consist of multiple, separate services, each running in its own container. Developing and debugging these services on a remote Kubernetes cluster can be cumbersome, requiring you to get a shell on a running container in order to run debugging tools.telepresence is a tool to ease the process of developing and debugging services locally while proxying the service to a remote Kubernetes cluster. Using telepresence allows you to use custom tools, such as a debugger and IDE, for a local service and provides the service full access to ConfigMap, secrets, and the services running on the remote cluster.This document describes using telepresence to develop and debug services running on a remote cluster locally.Before you beginKubernetes cluster is installedkubectl is configured to communicate with the clusterTelepresence is installedConnecting your local machine to a remote Kubernetes clusterAfter installing telepresence, run telepresence connect to launch its Daemon and connect your local workstation to the cluster.$ telepresence connect Launching Telepresence Daemon ... Connected to context default (https://<cluster public IP>) You can curl services using the Kubernetes syntax e.g. curl -ik https://kubernetes.defaultDeveloping or debugging an existing serviceWhen developing an application on Kubernetes, you typically program or debug a single service. The service might require access to other services for testing and debugging. One option is to use the continuous deployment pipeline, but even the fastest deployment pipeline introduces a delay in the program or debug cycle.Use the telepresence intercept $SERVICE_NAME --port $LOCAL_PORT:$REMOTE_PORT command to create an "intercept" for rerouting remote service traffic.Where:$SERVICE_NAME is the name of your local service$LOCAL_PORT is the port that your service is running on your local workstationAnd $REMOTE_PORT is the port your service listens to in the clusterRunning this command tells Telepresence to send remote traffic to your local service instead of the service in the remote Kubernetes cluster. Make edits to your service source code locally, save, and see the corresponding changes when accessing your remote application take effect immediately. You can also run your local service using a debugger or any other local development tool.How does Telepresence work?Telepresence installs a traffic-agent sidecar next to your existing application's container running in the remote cluster. It then captures all traffic requests going into the Pod, and instead of forwarding this to the application in the remote cluster, it ro


Question: What are the benefits of Developing and debugging services locally using telepresence?

Answer: Developing and debugging services locally using telepresenceNote: This section links to third party projects that provide functionality required by Kubernetes. The Kubernetes project authors aren't responsible for these projects, which are listed alphabetically. To add a project to this list, read the content guide before submitting a change. More information.Kubernetes applications usually consist of multiple, separate services, each running in its own container. Developing and debugging these services on a remote Kubernetes cluster can be cumbersome, requiring you to get a shell on a running container in order to run debugging tools.telepresence is a tool to ease the process of developing and debugging services locally while proxying the service to a remote Kubernetes cluster. Using telepresence allows you to use custom tools, such as a debugger and IDE, for a local service and provides the service full access to ConfigMap, secrets, and the services running on the remote cluster.This document describes using telepresence to develop and debug services running on a remote cluster locally.Before you beginKubernetes cluster is installedkubectl is configured to communicate with the clusterTelepresence is installedConnecting your local machine to a remote Kubernetes clusterAfter installing telepresence, run telepresence connect to launch its Daemon and connect your local workstation to the cluster.$ telepresence connect Launching Telepresence Daemon ... Connected to context default (https://<cluster public IP>) You can curl services using the Kubernetes syntax e.g. curl -ik https://kubernetes.defaultDeveloping or debugging an existing serviceWhen developing an application on Kubernetes, you typically program or debug a single service. The service might require access to other services for testing and debugging. One option is to use the continuous deployment pipeline, but even the fastest deployment pipeline introduces a delay in the program or debug cycle.Use the telepresence intercept $SERVICE_NAME --port $LOCAL_PORT:$REMOTE_PORT command to create an "intercept" for rerouting remote service traffic.Where:$SERVICE_NAME is the name of your local service$LOCAL_PORT is the port that your service is running on your local workstationAnd $REMOTE_PORT is the port your service listens to in the clusterRunning this command tells Telepresence to send remote traffic to your local service instead of the service in the remote Kubernetes cluster. Make edits to your service source code locally, save, and see the corresponding changes when accessing your remote application take effect immediately. You can also run your local service using a debugger or any other local development tool.How does Telepresence work?Telepresence installs a traffic-agent sidecar next to your existing application's container running in the remote cluster. It then captures all traffic requests going into the Pod, and instead of forwarding this to the application in the remote cluster, it ro


Question: What is Developing and debugging services locally using telepresence?

Answer: K u b e r n e t e s   a p p l i c a t i o n s   u s u a l l y   c o n s i s t   o f   m u l t i p l e ,   s e p a r a t e   s e r v i c e s ,   e a c h   r u n n i n g   i n   i t s   o w n   c o n t a i n e r .   D e v e l o p i n g   a n d   d e b u g g i n g   t h e s e   s e r v i c e s   o n   a   r e m o t e   K u b e r n e t e s   c l u s t e r   c a n   b e   c u m b e r s o m e ,   r e q u i r i n g   y o u   t o   g e t   a   s h e l l   o n   a   r u n n i n g   c o n t a i n e r   i n   o r d e r   t o   r u n   d e b u g g i n g   t o o l s .   t e l e p r e s e n c e   i s   a   t o o l   t o   e a s e   t h e   p r o c e s s   o f   d e v e l o p i n g   a n d   d e b u g g i n g   s e r v i c e s   l o c a l l y   w h i l e   p r o x y i n g   t h e   s e r v i c e   t o   a   r e m o t e   K u b e r n e t e s   c l u s t e r .   U s i n g   t e l e p r e s e n c e   a l l o w s   y o u   t o   u s e   c u s t o m   t o o l s ,   s u c h   a s   a   d e b u g g e r   a n d   I D E ,   f o r   a   l o c a l   s e r v i c e   a n d   p r o v i d e s   t h e   s e r v i c e   f u l l   a c c e s s   t o   C o n f i g M a p ,   s e c r e t s ,   a n d   t h e   s e r v i c e s   r u n n i n g   o n   t h e   r e m o t e   c l u s t e r .   T h i s   d o c u m e n t   d e s c r i b e s   u s i n g   t e l e p r e s e n c e   t o   d e v e l o p   a n d   d e b u g   s e r v i c e s   r u n n i n g   o n   a   r e m o t e   c l u s t e r   l o c a l l y .


Question: What is Before you begin?

Answer: K u b e r n e t e s   c l u s t e r   i s   i n s t a l l e d k u b e c t l   i s   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   t h e   c l u s t e r T e l e p r e s e n c e   i s   i n s t a l l e d