Question: What is 13.1.1 - Network Plugins?

Answer: K u b e r n e t e s   ( v e r s i o n   1 . 3   t h r o u g h   t o   t h e   l a t e s t   1 . 3 4 ,   a n d   l i k e l y   o n w a r d s )   l e t s   y o u   u s e   C o n t a i n e r   N e t w o r k   I n t e r f a c e   ( C N I )   p l u g i n s   f o r   c l u s t e r   n e t w o r k i n g .   Y o u   m u s t   u s e   a   C N I   p l u g i n   t h a t   i s   c o m p a t i b l e   w i t h   y o u r   c l u s t e r   a n d   t h a t   s u i t s   y o u r   n e e d s .   D i f f e r e n t   p l u g i n s   a r e   a v a i l a b l e   ( b o t h   o p e n -   a n d   c l o s e d -   s o u r c e )   i n   t h e   w i d e r   K u b e r n e t e s   e c o s y s t e m .   A   C N I   p l u g i n   i s   r e q u i r e d   t o   i m p l e m e n t   t h e   K u b e r n e t e s   n e t w o r k   m o d e l .   Y o u   m u s t   u s e   a   C N I   p l u g i n   t h a t   i s   c o m p a t i b l e   w i t h   t h e   v 0 . 4 . 0   o r   l a t e r   r e l e a s e s   o f   t h e   C N I   s p e c i f i c a t i o n .   T h e   K u b e r n e t e s   p r o j e c t   r e c o m m e n d s   u s i n g   a   p l u g i n   t h a t   i s   c o m p a t i b l e   w i t h   t h e   v 1 . 0 . 0   C N I   s p e c i f i c a t i o n   ( p l u g i n s   c a n   b e   c o m p a t i b l e   w i t h   m u l t i p l e   s p e c   v e r s i o n s ) .


Question: What is Installation?

Answer: A   C o n t a i n e r   R u n t i m e ,   i n   t h e   n e t w o r k i n g   c o n t e x t ,   i s   a   d a e m o n   o n   a   n o d e   c o n f i g u r e d   t o   p r o v i d e   C R I   S e r v i c e s   f o r   k u b e l e t .   I n   p a r t i c u l a r ,   t h e   C o n t a i n e r   R u n t i m e   m u s t   b e   c o n f i g u r e d   t o   l o a d   t h e   C N I   p l u g i n s   r e q u i r e d   t o   i m p l e m e n t   t h e   K u b e r n e t e s   n e t w o r k   m o d e l .


Question: What is Note:?

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


Question: What is Loopback CNI?

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


Question: What is Support hostPort?

Answer: T h e   C N I   n e t w o r k i n g   p l u g i n   s u p p o r t s   h o s t P o r t .   Y o u   c a n   u s e   t h e   o f f i c i a l   p o r t m a p   p l u g i n   o f f e r e d   b y   t h e   C N I   p l u g i n   t e a m   o r   u s e   y o u r   o w n   p l u g i n   w i t h   p o r t M a p p i n g   f u n c t i o n a l i t y .   I f   y o u   w a n t   t o   e n a b l e   h o s t P o r t   s u p p o r t ,   y o u   m u s t   s p e c i f y   p o r t M a p p i n g s   c a p a b i l i t y   i n   y o u r   c n i - c o n f - d i r .   F o r   e x a m p l e :   {   " n a m e " :   " k 8 s - p o d - n e t w o r k " ,   " c n i V e r s i o n " :   " 0 . 4 . 0 " ,   " p l u g i n s " :   [   {   " t y p e " :   " c a l i c o " ,   " l o g _ l e v e l " :   " i n f o " ,   " d a t a s t o r e _ t y p e " :   " k u b e r n e t e s " ,   " n o d e n a m e " :   " 1 2 7 . 0 . 0 . 1 " ,   " i p a m " :   {   " t y p e " :   " h o s t - l o c a l " ,   " s u b n e t " :   " u s e P o d C i d r "   } ,   " p o l i c y " :   {   " t y p e " :   " k 8 s "   } ,   " k u b e r n e t e s " :   {   " k u b e c o n f i g " :   " / e t c / c n i / n e t . d / c a l i c o - k u b e c o n f i g "   }   } ,   {   " t y p e " :   " p o r t m a p " ,   " c a p a b i l i t i e s " :   { " p o r t M a p p i n g s " :   t r u e } ,   " e x t e r n a l S e t M a r k C h a i n " :   " K U B E - M A R K - M A S Q "   }   ]   }


Question: What is Support traffic shaping?

Answer: E x p e r i m e n t a l   F e a t u r e   T h e   C N I   n e t w o r k i n g   p l u g i n   a l s o   s u p p o r t s   p o d   i n g r e s s   a n d   e g r e s s   t r a f f i c   s h a p i n g .   Y o u   c a n   u s e   t h e   o f f i c i a l   b a n d w i d t h   p l u g i n   o f f e r e d   b y   t h e   C N I   p l u g i n   t e a m   o r   u s e   y o u r   o w n   p l u g i n   w i t h   b a n d w i d t h   c o n t r o l   f u n c t i o n a l i t y .   I f   y o u   w a n t   t o   e n a b l e   t r a f f i c   s h a p i n g   s u p p o r t ,   y o u   m u s t   a d d   t h e   b a n d w i d t h   p l u g i n   t o   y o u r   C N I   c o n f i g u r a t i o n   f i l e   ( d e f a u l t   / e t c / c n i / n e t . d )   a n d   e n s u r e   t h a t   t h e   b i n a r y   i s   i n c l u d e d   i n   y o u r   C N I   b i n   d i r   ( d e f a u l t   / o p t / c n i / b i n ) .   {   " n a m e " :   " k 8 s - p o d - n e t w o r k " ,   " c n i V e r s i o n " :   " 0 . 4 . 0 " ,   " p l u g i n s " :   [   {   " t y p e " :   " c a l i c o " ,   " l o g _ l e v e l " :   " i n f o " ,   " d a t a s t o r e _ t y p e " :   " k u b e r n e t e s " ,   " n o d e n a m e " :   " 1 2 7 . 0 . 0 . 1 " ,   " i p a m " :   {   " t y p e " :   " h o s t - l o c a l " ,   " s u b n e t " :   " u s e P o d C i d r "   } ,   " p o l i c y " :   {   " t y p e " :   " k 8 s "   } ,   " k u b e r n e t e s " :   {   " k u b e c o n f i g " :   " / e t c / c n i / n e t . d / c a l i c o - k u b e c o n f i g "   }   } ,   {   " t y p e " :   " b a n d w i d t h " ,   " c a p a b i l i t i e s " :   { " b a n d w i d t h " :   t r u e }   }   ]   }   N o w   y o u   c a n   a d d   t h e   k u b e r n e t e s . i o / i n g r e s s - b a n d w i d t h   a n d   k u b e r n e t e s . i o / e g r e s s - b a n d w i d t h   a n n o t a t i o n s   t o   y o u r   P o d .   F o r   e x a m p l e :   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 :


Question: What is What's next?

Answer: L e a r n   m o r e   a b o u t   C l u s t e r   N e t w o r k i n g L e a r n   m o r e   a b o u t   N e t w o r k   P o l i c i e s L e a r n   a b o u t   t h e   T r o u b l e s h o o t i n g   C N I   p l u g i n - r e l a t e d   e r r o r s


Question: What is 13.1.2 - Device Plugins?

Answer: K u b e r n e t e s   p r o v i d e s   a   d e v i c e   p l u g i n   f r a m e w o r k   t h a t   y o u   c a n   u s e   t o   a d v e r t i s e   s y s t e m   h a r d w a r e   r e s o u r c e s   t o   t h e   K u b e l e t .   I n s t e a d   o f   c u s t o m i z i n g   t h e   c o d e   f o r   K u b e r n e t e s   i t s e l f ,   v e n d o r s   c a n   i m p l e m e n t   a   d e v i c e   p l u g i n   t h a t   y o u   d e p l o y   e i t h e r   m a n u a l l y   o r   a s   a   D a e m o n S e t .   T h e   t a r g e t e d   d e v i c e s   i n c l u d e   G P U s ,   h i g h - p e r f o r m a n c e   N I C s ,   F P G A s ,   I n f i n i B a n d   a d a p t e r s ,   a n d   o t h e r   s i m i l a r   c o m p u t i n g   r e s o u r c e s   t h a t   m a y   r e q u i r e   v e n d o r   s p e c i f i c   i n i t i a l i z a t i o n   a n d   s e t u p .


Question: What is Device plugin registration?

Answer: T h e   k u b e l e t   e x p o r t s   a   R e g i s t r a t i o n   g R P C   s e r v i c e :   s e r v i c e   R e g i s t r a t i o n   {   r p c   R e g i s t e r ( R e g i s t e r R e q u e s t )   r e t u r n s   ( E m p t y )   { }   }   A   d e v i c e   p l u g i n   c a n   r e g i s t e r   i t s e l f   w i t h   t h e   k u b e l e t   t h r o u g h   t h i s   g R P C   s e r v i c e .   D u r i n g   t h e   r e g i s t r a t i o n ,   t h e   d e v i c e   p l u g i n   n e e d s   t o   s e n d :   T h e   n a m e   o f   i t s   U n i x   s o c k e t . T h e   D e v i c e   P l u g i n   A P I   v e r s i o n   a g a i n s t   w h i c h   i t   w a s   b u i l t . T h e   R e s o u r c e N a m e   i t   w a n t s   t o   a d v e r t i s e .   H e r e   R e s o u r c e N a m e   n e e d s   t o   f o l l o w   t h e   e x t e n d e d   r e s o u r c e   n a m i n g   s c h e m e   a s   v e n d o r - d o m a i n / r e s o u r c e t y p e .   ( F o r   e x a m p l e ,   a n   N V I D I A   G P U   i s   a d v e r t i s e d   a s   n v i d i a . c o m / g p u . )   F o l l o w i n g   a   s u c c e s s f u l   r e g i s t r a t i o n ,   t h e   d e v i c e   p l u g i n   s e n d s   t h e   k u b e l e t   t h e   l i s t   o f   d e v i c e s   i t   m a n a g e s ,   a n d   t h e   k u b e l e t   i s   t h e n   i n   c h a r g e   o f   a d v e r t i s i n g   t h o s e   r e s o u r c e s   t o   t h e   A P I   s e r v e r   a s   p a r t   o f   t h e   k u b e l e t   n o d e   s t a t u s   u p d a t e .   F o r   e x a m p l e ,   a f t e r   a   d e v i c e   p l u g i n   r e g i s t e r s   h a r d w a r e - v e n d o r . e x a m p l e / f o o   w i t h   t h e   k u b e l e t   a n d   r e p o r t s   t w o   h e a l t h y   d e v i c e s   o n   a   n o d e ,   t h e   n o d e   s t a t u s   i s   u p d a t e d   t o   a d v e r t i s e   t h a t   t h e   n o d e   h a s   2   " F o o "   d e v i c e s   i n s t a l l e d   a n d


Question: What is Example?

Answer: S u p p o s e   a   K u b e r n e t e s   c l u s t e r   i s   r u n n i n g   a   d e v i c e   p l u g i n   t h a t   a d v e r t i s e s   r e s o u r c e   h a r d w a r e - v e n d o r . e x a m p l e / f o o   o n   c e r t a i n   n o d e s .   H e r e   i s   a n   e x a m p l e   o f   a   p o d   r e q u e s t i n g   t h i s   r e s o u r c e   t o   r u n   a   d e m o   w o r k l o a 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 :   d e m o - p o d   s p e c :   c o n t a i n e r s :   -   n a m e :   d e m o - c o n t a i n e r - 1   i m a g e :   r e g i s t r y . k 8 s . i o / p a u s e : 3 . 8   r e s o u r c e s :   l i m i t s :   h a r d w a r e - v e n d o r . e x a m p l e / f o o :   2   #   #   T h i s   P o d   n e e d s   2   o f   t h e   h a r d w a r e - v e n d o r . e x a m p l e / f o o   d e v i c e s   #   a n d   c a n   o n l y   s c h e d u l e   o n t o   a   N o d e   t h a t ' s   a b l e   t o   s a t i s f y   #   t h a t   n e e d .   #   #   I f   t h e   N o d e   h a s   m o r e   t h a n   2   o f   t h o s e   d e v i c e s   a v a i l a b l e ,   t h e   #   r e m a i n d e r   w o u l d   b e   a v a i l a b l e   f o r   o t h e r   P o d s   t o   u s e .


Question: What is Device plugin implementation?

Answer: T h e   g e n e r a l   w o r k f l o w   o f   a   d e v i c e   p l u g i n   i n c l u d e s   t h e   f o l l o w i n g   s t e p s :   I n i t i a l i z a t i o n .   D u r i n g   t h i s   p h a s e ,   t h e   d e v i c e   p l u g i n   p e r f o r m s   v e n d o r - s p e c i f i c   i n i t i a l i z a t i o n   a n d   s e t u p   t o   m a k e   s u r e   t h e   d e v i c e s   a r e   i n   a   r e a d y   s t a t e . T h e   p l u g i n   s t a r t s   a   g R P C   s e r v i c e ,   w i t h   a   U n i x   s o c k e t   u n d e r   t h e   h o s t   p a t h   / v a r / l i b / k u b e l e t / d e v i c e - p l u g i n s / ,   t h a t   i m p l e m e n t s   t h e   f o l l o w i n g   i n t e r f a c e s : s e r v i c e   D e v i c e P l u g i n   {   / /   G e t D e v i c e P l u g i n O p t i o n s   r e t u r n s   o p t i o n s   t o   b e   c o m m u n i c a t e d   w i t h   D e v i c e   M a n a g e r .   r p c   G e t D e v i c e P l u g i n O p t i o n s ( E m p t y )   r e t u r n s   ( D e v i c e P l u g i n O p t i o n s )   { }   / /   L i s t A n d W a t c h   r e t u r n s   a   s t r e a m   o f   L i s t   o f   D e v i c e s   / /   W h e n e v e r   a   D e v i c e   s t a t e   c h a n g e   o r   a   D e v i c e   d i s a p p e a r s ,   L i s t A n d W a t c h   / /   r e t u r n s   t h e   n e w   l i s t   r p c   L i s t A n d W a t c h ( E m p t y )   r e t u r n s   ( s t r e a m   L i s t A n d W a t c h R e s p o n s e )   { }   / /   A l l o c a t e   i s   c a l l e d   d u r i n g   c o n t a i n e r   c r e a t i o n   s o   t h a t   t h e   D e v i c e   / /   P l u g i n   c a n   r u n   d e v i c e   s p e c i f i c   o p e r a t i o n s   a n d   i n s t r u c t   K u b e l e t   / /   o f   t h e   s t e p s   t o   m a k e   t h e   D e v i c e   a v a i l a b l e   i n   t h e   c o n t a i n e r   r p c   A l l o c a t e ( A l l o c a t e R e q u e s t )   r e t u r n s   ( A l l o c a t e R e s p o n s


Question: What is Note:?

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


Question: What is Note:?

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


Question: What is Handling kubelet restarts?

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


Question: What is Device plugin and unhealthy devices?

Answer: T h e r e   a r e   c a s e s   w h e n   d e v i c e s   f a i l   o r   a r e   s h u t   d o w n .   T h e   r e s p o n s i b i l i t y   o f   t h e   D e v i c e   P l u g i n   i n   t h i s   c a s e   i s   t o   n o t i f y   t h e   k u b e l e t   a b o u t   t h e   s i t u a t i o n   u s i n g   t h e   L i s t A n d W a t c h R e s p o n s e   A P I .   O n c e   a   d e v i c e   i s   m a r k e d   a s   u n h e a l t h y ,   t h e   k u b e l e t   w i l l   d e c r e a s e   t h e   a l l o c a t a b l e   c o u n t   f o r   t h i s   r e s o u r c e   o n   t h e   N o d e   t o   r e f l e c t   h o w   m a n y   d e v i c e s   c a n   b e   u s e d   f o r   s c h e d u l i n g   n e w   p o d s .   C a p a c i t y   c o u n t   f o r   t h e   r e s o u r c e   w i l l   n o t   c h a n g e .   P o d s   t h a t   w e r e   a s s i g n e d   t o   t h e   f a i l e d   d e v i c e s   w i l l   c o n t i n u e   b e   a s s i g n e d   t o   t h i s   d e v i c e .   I t   i s   t y p i c a l   t h a t   c o d e   r e l y i n g   o n   t h e   d e v i c e   w i l l   s t a r t   f a i l i n g   a n d   P o d   m a y   g e t   i n t o   F a i l e d   p h a s e   i f   r e s t a r t P o l i c y   f o r   t h e   P o d   w a s   n o t   A l w a y s   o r   e n t e r   t h e   c r a s h   l o o p   o t h e r w i s e .   B e f o r e   K u b e r n e t e s   v 1 . 3 1 ,   t h e   w a y   t o   k n o w   w h e t h e r   o r   n o t   a   P o d   i s   a s s o c i a t e d   w i t h   t h e   f a i l e d   d e v i c e   i s   t o   u s e   t h e   P o d R e s o u r c e s   A P I .   B y   e n a b l i n g   t h e   f e a t u r e   g a t e   R e s o u r c e H e a l t h S t a t u s ,   t h e   f i e l d   a l l o c a t e d R e s o u r c e s S t a t u s   w i l l   b e   a d d e d   t o   e a c h   c o n t a i n e r   s t a t u s ,   w i t h i n   t h e   . s t a t u s   f o r   e a c h   P o d .   T h e   a l l o c a t e d R e s o u r c e s S t a t u s


Question: What is Device plugin deployment?

Answer: Y o u   c a n   d e p l o y   a   d e v i c e   p l u g i n   a s   a   D a e m o n S e t ,   a s   a   p a c k a g e   f o r   y o u r   n o d e ' s   o p e r a t i n g   s y s t e m ,   o r   m a n u a l l y .   T h e   c a n o n i c a l   d i r e c t o r y   / v a r / l i b / k u b e l e t / d e v i c e - p l u g i n s   r e q u i r e s   p r i v i l e g e d   a c c e s s ,   s o   a   d e v i c e   p l u g i n   m u s t   r u n   i n   a   p r i v i l e g e d   s e c u r i t y   c o n t e x t .   I f   y o u ' r e   d e p l o y i n g   a   d e v i c e   p l u g i n   a s   a   D a e m o n S e t ,   / v a r / l i b / k u b e l e t / d e v i c e - p l u g i n s   m u s t   b e   m o u n t e d   a s   a   V o l u m e   i n   t h e   p l u g i n ' s   P o d S p e c .   I f   y o u   c h o o s e   t h e   D a e m o n S e t   a p p r o a c h   y o u   c a n   r e l y   o n   K u b e r n e t e s   t o :   p l a c e   t h e   d e v i c e   p l u g i n ' s   P o d   o n t o   N o d e s ,   t o   r e s t a r t   t h e   d a e m o n   P o d   a f t e r   f a i l u r e ,   a n d   t o   h e l p   a u t o m a t e   u p g r a d e s .


Question: What is API compatibility?

Answer: P r e v i o u s l y ,   t h e   v e r s i o n i n g   s c h e m e   r e q u i r e d   t h e   D e v i c e   P l u g i n ' s   A P I   v e r s i o n   t o   m a t c h   e x a c t l y   t h e   K u b e l e t ' s   v e r s i o n .   S i n c e   t h e   g r a d u a t i o n   o f   t h i s   f e a t u r e   t o   B e t a   i n   v 1 . 1 2   t h i s   i s   n o   l o n g e r   a   h a r d   r e q u i r e m e n t .   T h e   A P I   i s   v e r s i o n e d   a n d   h a s   b e e n   s t a b l e   s i n c e   B e t a   g r a d u a t i o n   o f   t h i s   f e a t u r e .   B e c a u s e   o f   t h i s ,   k u b e l e t   u p g r a d e s   s h o u l d   b e   s e a m l e s s   b u t   t h e r e   s t i l l   m a y   b e   c h a n g e s   i n   t h e   A P I   b e f o r e   s t a b i l i z a t i o n   m a k i n g   u p g r a d e s   n o t   g u a r a n t e e d   t o   b e   n o n - b r e a k i n g .


Question: What is Note:?

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


Question: What is Monitoring device plugin resources?

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


Question: What is List gRPC endpoint?

Answer: T h e   L i s t   e n d p o i n t   p r o v i d e s   i n f o r m a t i o n   o n   r e s o u r c e s   o f   r u n n i n g   p o d s ,   w i t h   d e t a i l s   s u c h   a s   t h e   i d   o f   e x c l u s i v e l y   a l l o c a t e d   C P U s ,   d e v i c e   i d   a s   i t   w a s   r e p o r t e d   b y   d e v i c e   p l u g i n s   a n d   i d   o f   t h e   N U M A   n o d e   w h e r e   t h e s e   d e v i c e s   a r e   a l l o c a t e d .   A l s o ,   f o r   N U M A - b a s e d   m a c h i n e s ,   i t   c o n t a i n s   t h e   i n f o r m a t i o n   a b o u t   m e m o r y   a n d   h u g e p a g e s   r e s e r v e d   f o r   a   c o n t a i n e r .   S t a r t i n g   f r o m   K u b e r n e t e s   v 1 . 2 7 ,   t h e   L i s t   e n d p o i n t   c a n   p r o v i d e   i n f o r m a t i o n   o n   r e s o u r c e s   o f   r u n n i n g   p o d s   a l l o c a t e d   i n   R e s o u r c e C l a i m s   b y   t h e   D y n a m i c R e s o u r c e A l l o c a t i o n   A P I .   S t a r t i n g   f r o m   K u b e r n e t e s   v 1 . 3 4 ,   t h i s   f e a t u r e   i s   e n a b l e d   b y   d e f a u l t .   T o   d i s a b l e ,   k u b e l e t   m u s t   b e   s t a r t e d   w i t h   t h e   f o l l o w i n g   f l a g s :   - - f e a t u r e - g a t e s = K u b e l e t P o d R e s o u r c e s D y n a m i c R e s o u r c e s = f a l s e   / /   L i s t P o d R e s o u r c e s R e s p o n s e   i s   t h e   r e s p o n s e   r e t u r n e d   b y   L i s t   f u n c t i o n   m e s s a g e   L i s t P o d R e s o u r c e s R e s p o n s e   {   r e p e a t e d   P o d R e s o u r c e s   p o d _ r e s o u r c e s   =   1 ;   }   / /   P o d R e s o u r c e s   c o n t a i n s   i n f o r m a t i o n   a b o u t   t h e   n o d e   r e s o u r c e s   a s s i g n e d   t o   a   p o d   m e s s a g e   P o d R e s o u r c e s   {   s t r i n g   n a m e   =   1 ;   s t r i n g   n a m e s p a c e   =   2 ;   r e p e a t e


Question: What is Note:?

Answer: c p u _ i d s   i n   t h e   C o n t a i n e r R e s o u r c e s   i n   t h e   L i s t   e n d p o i n t   c o r r e s p o n d   t o   e x c l u s i v e   C P U s   a l l o c a t e d   t o   a   p a r t i c u l a r   c o n t a i n e r .   I f   t h e   g o a l   i s   t o   e v a l u a t e   C P U s   t h a t   b e l o n g   t o   t h e   s h a r e d   p o o l ,   t h e   L i s t   e n d p o i n t   n e e d s   t o   b e   u s e d   i n   c o n j u n c t i o n   w i t h   t h e   G e t A l l o c a t a b l e R e s o u r c e s   e n d p o i n t   a s   e x p l a i n e d   b e l o w :   C a l l   G e t A l l o c a t a b l e R e s o u r c e s   t o   g e t   a   l i s t   o f   a l l   t h e   a l l o c a t a b l e   C P U s C a l l   G e t C p u I d s   o n   a l l   C o n t a i n e r R e s o u r c e s   i n   t h e   s y s t e m S u b t r a c t   o u t   a l l   o f   t h e   C P U s   f r o m   t h e   G e t C p u I d s   c a l l s   f r o m   t h e   G e t A l l o c a t a b l e R e s o u r c e s   c a l l


Question: What is GetAllocatableResources gRPC endpoint?

Answer: G e t A l l o c a t a b l e R e s o u r c e s   p r o v i d e s   i n f o r m a t i o n   o n   r e s o u r c e s   i n i t i a l l y   a v a i l a b l e   o n   t h e   w o r k e r   n o d e .   I t   p r o v i d e s   m o r e   i n f o r m a t i o n   t h a n   k u b e l e t   e x p o r t s   t o   A P I S e r v e r .


Question: What is Note:?

Answer: G e t A l l o c a t a b l e R e s o u r c e s   s h o u l d   o n l y   b e   u s e d   t o   e v a l u a t e   a l l o c a t a b l e   r e s o u r c e s   o n   a   n o d e .   I f   t h e   g o a l   i s   t o   e v a l u a t e   f r e e / u n a l l o c a t e d   r e s o u r c e s   i t   s h o u l d   b e   u s e d   i n   c o n j u n c t i o n   w i t h   t h e   L i s t ( )   e n d p o i n t .   T h e   r e s u l t   o b t a i n e d   b y   G e t A l l o c a t a b l e R e s o u r c e s   w o u l d   r e m a i n   t h e   s a m e   u n l e s s   t h e   u n d e r l y i n g   r e s o u r c e s   e x p o s e d   t o   k u b e l e t   c h a n g e .   T h i s   h a p p e n s   r a r e l y   b u t   w h e n   i t   d o e s   ( f o r   e x a m p l e :   h o t p l u g / h o t u n p l u g ,   d e v i c e   h e a l t h   c h a n g e s ) ,   c l i e n t   i s   e x p e c t e d   t o   c a l l   G e t A l l o c t a b l e R e s o u r c e s   e n d p o i n t .   H o w e v e r ,   c a l l i n g   G e t A l l o c a t a b l e R e s o u r c e s   e n d p o i n t   i s   n o t   s u f f i c i e n t   i n   c a s e   o f   c p u   a n d / o r   m e m o r y   u p d a t e   a n d   K u b e l e t   n e e d s   t o   b e   r e s t a r t e d   t o   r e f l e c t   t h e   c o r r e c t   r e s o u r c e   c a p a c i t y   a n d   a l l o c a t a b l e .   / /   A l l o c a t a b l e R e s o u r c e s R e s p o n s e s   c o n t a i n s   i n f o r m a t i o n   a b o u t   a l l   t h e   d e v i c e s   k n o w n   b y   t h e   k u b e l e t   m e s s a g e   A l l o c a t a b l e R e s o u r c e s R e s p o n s e   {   r e p e a t e d   C o n t a i n e r D e v i c e s   d e v i c e s   =   1 ;   r e p e a t e d   i n t 6 4   c p u _ i d s   =   2 ;   r e p e a t e d   C o n t a i n e r M e m o r y   m e m o r y   =   3 ;   }   C o n t a i n e r D e v i c e s   d o   e x p o s e   t h e   t o p o l o g y   i n f o r m a t i o n   d e c l a r i n g   t o   w h i c h   N U M A   c e


Question: What is Note:?

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


Question: What is Get gRPC endpoint?

Answer: T h e   G e t   e n d p o i n t   p r o v i d e s   i n f o r m a t i o n   o n   r e s o u r c e s   o f   a   r u n n i n g   P o d .   I t   e x p o s e s   i n f o r m a t i o n   s i m i l a r   t o   t h o s e   d e s c r i b e d   i n   t h e   L i s t   e n d p o i n t .   T h e   G e t   e n d p o i n t   r e q u i r e s   P o d N a m e   a n d   P o d N a m e s p a c e   o f   t h e   r u n n i n g   P o d .   / /   G e t P o d R e s o u r c e s R e q u e s t   c o n t a i n s   i n f o r m a t i o n   a b o u t   t h e   p o d   m e s s a g e   G e t P o d R e s o u r c e s R e q u e s t   {   s t r i n g   p o d _ n a m e   =   1 ;   s t r i n g   p o d _ n a m e s p a c e   =   2 ;   }   T o   d i s a b l e   t h i s   f e a t u r e ,   y o u   m u s t   s t a r t   y o u r   k u b e l e t   s e r v i c e s   w i t h   t h e   f o l l o w i n g   f l a g :   - - f e a t u r e - g a t e s = K u b e l e t P o d R e s o u r c e s G e t = f a l s e   T h e   G e t   e n d p o i n t   c a n   p r o v i d e   P o d   i n f o r m a t i o n   r e l a t e d   t o   d y n a m i c   r e s o u r c e s   a l l o c a t e d   b y   t h e   d y n a m i c   r e s o u r c e   a l l o c a t i o n   A P I .   S t a r t i n g   f r o m   K u b e r n e t e s   v 1 . 3 4 ,   t h i s   f e a t u r e   i s   e n a b l e d   b y   d e f a u l t .   T o   d i s a b l e ,   k u b e l e t   m u s t   b e   s t a r t e d   w i t h   t h e   f o l l o w i n g   f l a g s :   - - f e a t u r e - g a t e s = K u b e l e t P o d R e s o u r c e s D y n a m i c R e s o u r c e s = f a l s e


Question: What is Device plugin integration with the Topology Manager?

Answer: T h e   T o p o l o g y   M a n a g e r   i s   a   K u b e l e t   c o m p o n e n t   t h a t   a l l o w s   r e s o u r c e s   t o   b e   c o - o r d i n a t e d   i n   a   T o p o l o g y   a l i g n e d   m a n n e r .   I n   o r d e r   t o   d o   t h i s ,   t h e   D e v i c e   P l u g i n   A P I   w a s   e x t e n d e d   t o   i n c l u d e   a   T o p o l o g y I n f o   s t r u c t .   m e s s a g e   T o p o l o g y I n f o   {   r e p e a t e d   N U M A N o d e   n o d e s   =   1 ;   }   m e s s a g e   N U M A N o d e   {   i n t 6 4   I D   =   1 ;   }   D e v i c e   P l u g i n s   t h a t   w i s h   t o   l e v e r a g e   t h e   T o p o l o g y   M a n a g e r   c a n   s e n d   b a c k   a   p o p u l a t e d   T o p o l o g y I n f o   s t r u c t   a s   p a r t   o f   t h e   d e v i c e   r e g i s t r a t i o n ,   a l o n g   w i t h   t h e   d e v i c e   I D s   a n d   t h e   h e a l t h   o f   t h e   d e v i c e .   T h e   d e v i c e   m a n a g e r   w i l l   t h e n   u s e   t h i s   i n f o r m a t i o n   t o   c o n s u l t   w i t h   t h e   T o p o l o g y   M a n a g e r   a n d   m a k e   r e s o u r c e   a s s i g n m e n t   d e c i s i o n s .   T o p o l o g y I n f o   s u p p o r t s   s e t t i n g   a   n o d e s   f i e l d   t o   e i t h e r   n i l   o r   a   l i s t   o f   N U M A   n o d e s .   T h i s   a l l o w s   t h e   D e v i c e   P l u g i n   t o   a d v e r t i s e   a   d e v i c e   t h a t   s p a n s   m u l t i p l e   N U M A   n o d e s .   S e t t i n g   T o p o l o g y I n f o   t o   n i l   o r   p r o v i d i n g   a n   e m p t y   l i s t   o f   N U M A   n o d e s   f o r   a   g i v e n   d e v i c e   i n d i c a t e s   t h a t   t h e   D e v i c e   P l u g i n   d o e s   n o t   h a v e   a   N U M A   a f f i n i t y   p r e f e r e n c e   f o r   t h a t   d e v i c e .   A n   e x a m p l e   T o p o l o g y I n f o   s t r u c t   p o p u l a


Question: What is Device plugin examples?

Answer: H e r e   a r e   s o m e   e x a m p l e s   o f   d e v i c e   p l u g i n   i m p l e m e n t a t i o n s :   A k r i ,   w h i c h   l e t s   y o u   e a s i l y   e x p o s e   h e t e r o g e n e o u s   l e a f   d e v i c e s   ( s u c h   a s   I P   c a m e r a s   a n d   U S B   d e v i c e s ) . T h e   A M D   G P U   d e v i c e   p l u g i n T h e   g e n e r i c   d e v i c e   p l u g i n   f o r   g e n e r i c   L i n u x   d e v i c e s   a n d   U S B   d e v i c e s T h e   H A M i   f o r   h e t e r o g e n e o u s   A I   c o m p u t i n g   v i r t u a l i z a t i o n   m i d d l e w a r e   ( f o r   e x a m p l e ,   N V I D I A ,   C a m b r i c o n ,   H y g o n ,   I l u v a t a r ,   M T h r e a d s ,   A s c e n d ,   M e t a x ) T h e   I n t e l   d e v i c e   p l u g i n s   f o r   I n t e l   G P U ,   F P G A ,   Q A T ,   V P U ,   S G X ,   D S A ,   D L B   a n d   I A A   d e v i c e s T h e   K u b e V i r t   d e v i c e   p l u g i n s   f o r   h a r d w a r e - a s s i s t e d   v i r t u a l i z a t i o n T h e   N V I D I A   G P U   d e v i c e   p l u g i n ,   N V I D I A ' s   o f f i c i a l   d e v i c e   p l u g i n   t o   e x p o s e   N V I D I A   G P U s   a n d   m o n i t o r   G P U   h e a l t h T h e   N V I D I A   G P U   d e v i c e   p l u g i n   f o r   C o n t a i n e r - O p t i m i z e d   O S T h e   R D M A   d e v i c e   p l u g i n T h e   S o c k e t C A N   d e v i c e   p l u g i n T h e   S o l a r f l a r e   d e v i c e   p l u g i n T h e   S R - I O V   N e t w o r k   d e v i c e   p l u g i n T h e   X i l i n x   F P G A   d e v i c e   p l u g i n s   f o r   X i l i n x   F P G A   d e v i c e s


Question: What is What's next?

Answer: L e a r n   a b o u t   s c h e d u l i n g   G P U   r e s o u r c e s   u s i n g   d e v i c e   p l u g i n s L e a r n   a b o u t   a d v e r t i s i n g   e x t e n d e d   r e s o u r c e s   o n   a   n o d e L e a r n   a b o u t   t h e   T o p o l o g y   M a n a g e r R e a d   a b o u t   u s i n g   h a r d w a r e   a c c e l e r a t i o n   f o r   T L S   i n g r e s s   w i t h   K u b e r n e t e s R e a d   m o r e   a b o u t   E x t e n d e d   R e s o u r c e   a l l o c a t i o n   b y   D R A


Question: What is 13.2 - Extending the Kubernetes API?

Answer: C u s t o m   r e s o u r c e s   a r e   e x t e n s i o n s   o f   t h e   K u b e r n e t e s   A P I .   K u b e r n e t e s   p r o v i d e s   t w o   w a y s   t o   a d d   c u s t o m   r e s o u r c e s   t o   y o u r   c l u s t e r :   T h e   C u s t o m R e s o u r c e D e f i n i t i o n   ( C R D )   m e c h a n i s m   a l l o w s   y o u   t o   d e c l a r a t i v e l y   d e f i n e   a   n e w   c u s t o m   A P I   w i t h   a n   A P I   g r o u p ,   k i n d ,   a n d   s c h e m a   t h a t   y o u   s p e c i f y .   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 r v e s   a n d   h a n d l e s   t h e   s t o r a g e   o f   y o u r   c u s t o m   r e s o u r c e .   C R D s   a l l o w   y o u   t o   c r e a t e   n e w   t y p e s   o f   r e s o u r c e s   f o r   y o u r   c l u s t e r   w i t h o u t   w r i t i n g   a n d   r u n n i n g   a   c u s t o m   A P I   s e r v e r . T h e   a g g r e g a t i o n   l a y e r   s i t s   b e h i n d   t h e   p r i m a r y   A P I   s e r v e r ,   w h i c h   a c t s   a s   a   p r o x y .   T h i s   a r r a n g e m e n t   i s   c a l l e d   A P I   A g g r e g a t i o n   ( A A ) ,   w h i c h   a l l o w s   y o u   t o   p r o v i d e   s p e c i a l i z e d   i m p l e m e n t a t i o n s   f o r   y o u r   c u s t o m   r e s o u r c e s   b y   w r i t i n g   a n d   d e p l o y i n g   y o u r   o w n   A P I   s e r v e r .   T h e   m a i n   A P I   s e r v e r   d e l e g a t e s   r e q u e s t s   t o   y o u r   A P I   s e r v e r   f o r   t h e   c u s t o m   A P I s   t h a t   y o u   s p e c i f y ,   m a k i n g   t h e m   a v a i l a b l e   t o   a l l   o f   i t s   c l i e n t s .


Question: What is 13.2.1 - Custom Resources?

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


Question: What is Custom resources?

Answer: A   r e s o u r c e   i s   a n   e n d p o i n t   i n   t h e   K u b e r n e t e s   A P I   t h a t   s t o r e s   a   c o l l e c t i o n   o f   A P I   o b j e c t s   o f   a   c e r t a i n   k i n d ;   f o r   e x a m p l e ,   t h e   b u i l t - i n   p o d s   r e s o u r c e   c o n t a i n s   a   c o l l e c t i o n   o f   P o d   o b j e c t s .   A   c u s t o m   r e s o u r c e   i s   a n   e x t e n s i o n   o f   t h e   K u b e r n e t e s   A P I   t h a t   i s   n o t   n e c e s s a r i l y   a v a i l a b l e   i n   a   d e f a u l t   K u b e r n e t e s   i n s t a l l a t i o n .   I t   r e p r e s e n t s   a   c u s t o m i z a t i o n   o f   a   p a r t i c u l a r   K u b e r n e t e s   i n s t a l l a t i o n .   H o w e v e r ,   m a n y   c o r e   K u b e r n e t e s   f u n c t i o n s   a r e   n o w   b u i l t   u s i n g   c u s t o m   r e s o u r c e s ,   m a k i n g   K u b e r n e t e s   m o r e   m o d u l a r .   C u s t o m   r e s o u r c e s   c a n   a p p e a r   a n d   d i s a p p e a r   i n   a   r u n n i n g   c l u s t e r   t h r o u g h   d y n a m i c   r e g i s t r a t i o n ,   a n d   c l u s t e r   a d m i n s   c a n   u p d a t e   c u s t o m   r e s o u r c e s   i n d e p e n d e n t l y   o f   t h e   c l u s t e r   i t s e l f .   O n c e   a   c u s t o m   r e s o u r c e   i s   i n s t a l l e d ,   u s e r s   c a n   c r e a t e   a n d   a c c e s s   i t s   o b j e c t s   u s i n g   k u b e c t l ,   j u s t   a s   t h e y   d o   f o r   b u i l t - i n   r e s o u r c e s   l i k e   P o d s .


Question: What is Custom controllers?

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


Question: What is Should I add a custom resource to my Kubernetes cluster??

Answer: W h e n   c r e a t i n g   a   n e w   A P I ,   c o n s i d e r   w h e t h e r   t o   a g g r e g a t e   y o u r   A P I   w i t h   t h e   K u b e r n e t e s   c l u s t e r   A P I s   o r   l e t   y o u r   A P I   s t a n d   a l o n e .


Question: What is Declarative APIs?

Answer: I n   a   D e c l a r a t i v e   A P I ,   t y p i c a l l y :   Y o u r   A P I   c o n s i s t s   o f   a   r e l a t i v e l y   s m a l l   n u m b e r   o f   r e l a t i v e l y   s m a l l   o b j e c t s   ( r e s o u r c e s ) . T h e   o b j e c t s   d e f i n e   c o n f i g u r a t i o n   o f   a p p l i c a t i o n s   o r   i n f r a s t r u c t u r e . T h e   o b j e c t s   a r e   u p d a t e d   r e l a t i v e l y   i n f r e q u e n t l y . H u m a n s   o f t e n   n e e d   t o   r e a d   a n d   w r i t e   t h e   o b j e c t s . T h e   m a i n   o p e r a t i o n s   o n   t h e   o b j e c t s   a r e   C R U D - y   ( c r e a t i n g ,   r e a d i n g ,   u p d a t i n g   a n d   d e l e t i n g ) . T r a n s a c t i o n s   a c r o s s   o b j e c t s   a r e   n o t   r e q u i r e d :   t h e   A P I   r e p r e s e n t s   a   d e s i r e d   s t a t e ,   n o t   a n   e x a c t   s t a t e .   I m p e r a t i v e   A P I s   a r e   n o t   d e c l a r a t i v e .   S i g n s   t h a t   y o u r   A P I   m i g h t   n o t   b e   d e c l a r a t i v e   i n c l u d e :   T h e   c l i e n t   s a y s   " d o   t h i s " ,   a n d   t h e n   g e t s   a   s y n c h r o n o u s   r e s p o n s e   b a c k   w h e n   i t   i s   d o n e . T h e   c l i e n t   s a y s   " d o   t h i s " ,   a n d   t h e n   g e t s   a n   o p e r a t i o n   I D   b a c k ,   a n d   h a s   t o   c h e c k   a   s e p a r a t e   O p e r a t i o n   o b j e c t   t o   d e t e r m i n e   c o m p l e t i o n   o f   t h e   r e q u e s t . Y o u   t a l k   a b o u t   R e m o t e   P r o c e d u r e   C a l l s   ( R P C s ) . D i r e c t l y   s t o r i n g   l a r g e   a m o u n t s   o f   d a t a ;   f o r   e x a m p l e ,   >   a   f e w   k B   p e r   o b j e c t ,   o r   >   1 0 0 0 s   o f   o b j e c t s . H i g h   b a n d w i d t h   a c c e s s   ( 1 0 s   o f   r e q u e s t s   p e r   s e c o n d   s u s t a i n e d )


Question: What is Should I use a ConfigMap or a custom resource??

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


Question: What is Note:?

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


Question: What is Adding custom resources?

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


Question: What is Note:?

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


Question: What is CustomResourceDefinitions?

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


Question: What is API server aggregation?

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


Question: What is Choosing a method for adding custom resources?

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


Question: What is Comparing ease of use?

Answer: C R D s   a r e   e a s i e r   t o   c r e a t e   t h a n   A g g r e g a t e d   A P I s .


Question: What is Advanced features and flexibility?

Answer: A g g r e g a t e d   A P I s   o f f e r   m o r e   a d v a n c e d   A P I   f e a t u r e s   a n d   c u s t o m i z a t i o n   o f   o t h e r   f e a t u r e s ;   f o r   e x a m p l e ,   t h e   s t o r a g e   l a y e r .


Question: What is Common Features?

Answer: W h e n   y o u   c r e a t e   a   c u s t o m   r e s o u r c e ,   e i t h e r   v i a   a   C R D   o r   a n   A A ,   y o u   g e t   m a n y   f e a t u r e s   f o r   y o u r   A P I ,   c o m p a r e d   t o   i m p l e m e n t i n g   i t   o u t s i d e   t h e   K u b e r n e t e s   p l a t f o r m :


Question: What is Preparing to install a custom resource?

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


Question: What is Third party code and new points of failure?

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


Question: What is Storage?

Answer: C u s t o m   r e s o u r c e s   c o n s u m e   s t o r a g e   s p a c e   i n   t h e   s a m e   w a y   t h a t   C o n f i g M a p s   d o .   C r e a t i n g   t o o   m a n y   c u s t o m   r e s o u r c e s   m a y   o v e r l o a d   y o u r   A P I   s e r v e r ' s   s t o r a g e   s p a c e .   A g g r e g a t e d   A P I   s e r v e r s   m a y   u s e   t h e   s a m e   s t o r a g e   a s   t h e   m a i n   A P I   s e r v e r ,   i n   w h i c h   c a s e   t h e   s a m e   w a r n i n g   a p p l i e s .


Question: What is Authentication, authorization, and auditing?

Answer: C R D s   a l w a y s   u s e   t h e   s a m e   a u t h e n t i c a t i o n ,   a u t h o r i z a t i o n ,   a n d   a u d i t   l o g g i n g   a s   t h e   b u i l t - i n   r e s o u r c e s   o f   y o u r   A P I   s e r v e r .   I f   y o u   u s e   R B A C   f o r   a u t h o r i z a t i o n ,   m o s t   R B A C   r o l e s   w i l l   n o t   g r a n t   a c c e s s   t o   t h e   n e w   r e s o u r c e s   ( e x c e p t   t h e   c l u s t e r - a d m i n   r o l e   o r   a n y   r o l e   c r e a t e d   w i t h   w i l d c a r d   r u l e s ) .   Y o u ' l l   n e e d   t o   e x p l i c i t l y   g r a n t   a c c e s s   t o   t h e   n e w   r e s o u r c e s .   C R D s   a n d   A g g r e g a t e d   A P I s   o f t e n   c o m e   b u n d l e d   w i t h   n e w   r o l e   d e f i n i t i o n s   f o r   t h e   t y p e s   t h e y   a d d .   A g g r e g a t e d   A P I   s e r v e r s   m a y   o r   m a y   n o t   u s e   t h e   s a m e   a u t h e n t i c a t i o n ,   a u t h o r i z a t i o n ,   a n d   a u d i t i n g   a s   t h e   p r i m a r y   A P I   s e r v e r .


Question: What is Accessing a custom resource?

Answer: K u b e r n e t e s   c l i e n t   l i b r a r i e s   c a n   b e   u s e d   t o   a c c e s s   c u s t o m   r e s o u r c e s .   N o t   a l l   c l i e n t   l i b r a r i e s   s u p p o r t   c u s t o m   r e s o u r c e s .   T h e   G o   a n d   P y t h o n   c l i e n t   l i b r a r i e s   d o .   W h e n   y o u   a d d   a   c u s t o m   r e s o u r c e ,   y o u   c a n   a c c e s s   i t   u s i n g :   k u b e c t l T h e   K u b e r n e t e s   d y n a m i c   c l i e n t . A   R E S T   c l i e n t   t h a t   y o u   w r i t e . A   c l i e n t   g e n e r a t e d   u s i n g   K u b e r n e t e s   c l i e n t   g e n e r a t i o n   t o o l s   ( g e n e r a t i n g   o n e   i s   a n   a d v a n c e d   u n d e r t a k i n g ,   b u t   s o m e   p r o j e c t s   m a y   p r o v i d e   a   c l i e n t   a l o n g   w i t h   t h e   C R D   o r   A A ) .


Question: What is Custom resource field selectors?

Answer: F i e l d   S e l e c t o r s   l e t   c l i e n t s   s e l e c t   c u s t o m   r e s o u r c e s   b a s e d   o n   t h e   v a l u e   o f   o n e   o r   m o r e   r e s o u r c e   f i e l d s .   A l l   c u s t o m   r e s o u r c e s   s u p p o r t   t h e   m e t a d a t a . n a m e   a n d   m e t a d a t a . n a m e s p a c e   f i e l d   s e l e c t o r s .   F i e l d s   d e c l a r e d   i n   a   C u s t o m R e s o u r c e D e f i n i t i o n   m a y   a l s o   b e   u s e d   w i t h   f i e l d   s e l e c t o r s   w h e n   i n c l u d e d   i n   t h e   s p e c . v e r s i o n s [ * ] . s e l e c t a b l e F i e l d s   f i e l d   o f   t h e   C u s t o m R e s o u r c e D e f i n i t i o n .


Question: What is Selectable fields for custom resources?

Answer: T h e   s p e c . v e r s i o n s [ * ] . s e l e c t a b l e F i e l d s   f i e l d   o f   a   C u s t o m R e s o u r c e D e f i n i t i o n   m a y   b e   u s e d   t o   d e c l a r e   w h i c h   o t h e r   f i e l d s   i n   a   c u s t o m   r e s o u r c e   m a y   b e   u s e d   i n   f i e l d   s e l e c t o r s .   T h e   f o l l o w i n g   e x a m p l e   a d d s   t h e   . s p e c . c o l o r   a n d   . s p e c . s i z e   f i e l d s   a s   s e l e c t a b l e   f i e l d s .   a p i V e r s i o n :   a p i e x t e n s i o n s . k 8 s . i o / v 1   k i n d :   C u s t o m R e s o u r c e D e f i n i t i o n   m e t a d a t a :   n a m e :   s h i r t s . s t a b l e . e x a m p l e . c o m   s p e c :   g r o u p :   s t a b l e . e x a m p l e . c o m   s c o p e :   N a m e s p a c e d   n a m e s :   p l u r a l :   s h i r t s   s i n g u l a r :   s h i r t   k i n d :   S h i r t   v e r s i o n s :   -   n a m e :   v 1   s e r v e d :   t r u e   s t o r a g e :   t r u e   s c h e m a :   o p e n A P I V 3 S c h e m a :   t y p e :   o b j e c t   p r o p e r t i e s :   s p e c :   t y p e :   o b j e c t   p r o p e r t i e s :   c o l o r :   t y p e :   s t r i n g   s i z e :   t y p e :   s t r i n g   s e l e c t a b l e F i e l d s :   -   j s o n P a t h :   . s p e c . c o l o r   -   j s o n P a t h :   . s p e c . s i z e   a d d i t i o n a l P r i n t e r C o l u m n s :   -   j s o n P a t h :   . s p e c . c o l o r   n a m e :   C o l o r   t y p e :   s t r i n g   -   j s o n P a t h :   . s p e c . s i z e   n a m e :   S i z e   t y p e :   s t r i n g   F i e l d   s e l e c t o r s   c a n   t h e n   b e   u s e d   t o   g e t   o n l y   r e s o u r c e s   w i t h   a   c o l o r   o f   b l u e :   k u b e c t l   g e t   s h i r t s . s t a b l e . e x a m p l e . c o m   - - f i e l d - s e l e c t o r   s p e c . c o l o r = b l u e   T h e   o u t p u t   s h o u l d   b e :   N A M E   C O L O R


Question: What is What's next?

Answer: L e a r n   h o w   t o   E x t e n d   t h e   K u b e r n e t e s   A P I   w i t h   t h e   a g g r e g a t i o n   l a y e r . L e a r n   h o w   t o   E x t e n d   t h e   K u b e r n e t e s   A P I   w i t h   C u s t o m R e s o u r c e D e f i n i t i o n .


Question: What is 13.2.2 - Kubernetes API Aggregation Layer?

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


Question: What is Aggregation layer?

Answer: T h e   a g g r e g a t i o n   l a y e r   r u n s   i n - p r o c e s s   w i t h   t h e   k u b e - a p i s e r v e r .   U n t i l   a n   e x t e n s i o n   r e s o u r c e   i s   r e g i s t e r e d ,   t h e   a g g r e g a t i o n   l a y e r   w i l l   d o   n o t h i n g .   T o   r e g i s t e r   a n   A P I ,   y o u   a d d   a n   A P I S e r v i c e   o b j e c t ,   w h i c h   " c l a i m s "   t h e   U R L   p a t h   i n   t h e   K u b e r n e t e s   A P I .   A t   t h a t   p o i n t ,   t h e   a g g r e g a t i o n   l a y e r   w i l l   p r o x y   a n y t h i n g   s e n t   t o   t h a t   A P I   p a t h   ( e . g .   / a p i s / m y e x t e n s i o n . m y c o m p a n y . i o / v 1 / … )   t o   t h e   r e g i s t e r e d   A P I S e r v i c e .   T h e   m o s t   c o m m o n   w a y   t o   i m p l e m e n t   t h e   A P I S e r v i c e   i s   t o   r u n   a n   e x t e n s i o n   A P I   s e r v e r   i n   P o d ( s )   t h a t   r u n   i n   y o u r   c l u s t e r .   I f   y o u ' r e   u s i n g   t h e   e x t e n s i o n   A P I   s e r v e r   t o   m a n a g e   r e s o u r c e s   i n   y o u r   c l u s t e r ,   t h e   e x t e n s i o n   A P I   s e r v e r   ( a l s o   w r i t t e n   a s   " e x t e n s i o n - a p i s e r v e r " )   i s   t y p i c a l l y   p a i r e d   w i t h   o n e   o r   m o r e   c o n t r o l l e r s .   T h e   a p i s e r v e r - b u i l d e r   l i b r a r y   p r o v i d e s   a   s k e l e t o n   f o r   b o t h   e x t e n s i o n   A P I   s e r v e r s   a n d   t h e   a s s o c i a t e d   c o n t r o l l e r ( s ) .


Question: What is Response latency?

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


Question: What is What's next?

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


Question: What is 13.3 - Operator pattern?

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


Question: What is Motivation?

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


Question: What is Operators in Kubernetes?

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


Question: What is An example operator?

Answer: S o m e   o f   t h e   t h i n g s   t h a t   y o u   c a n   u s e   a n   o p e r a t o r   t o   a u t o m a t e   i n c l u d e :   d e p l o y i n g   a n   a p p l i c a t i o n   o n   d e m a n d t a k i n g   a n d   r e s t o r i n g   b a c k u p s   o f   t h a t   a p p l i c a t i o n ' s   s t a t e h a n d l i n g   u p g r a d e s   o f   t h e   a p p l i c a t i o n   c o d e   a l o n g s i d e   r e l a t e d   c h a n g e s   s u c h   a s   d a t a b a s e   s c h e m a s   o r   e x t r a   c o n f i g u r a t i o n   s e t t i n g s p u b l i s h i n g   a   S e r v i c e   t o   a p p l i c a t i o n s   t h a t   d o n ' t   s u p p o r t   K u b e r n e t e s   A P I s   t o   d i s c o v e r   t h e m s i m u l a t i n g   f a i l u r e   i n   a l l   o r   p a r t   o f   y o u r   c l u s t e r   t o   t e s t   i t s   r e s i l i e n c e c h o o s i n g   a   l e a d e r   f o r   a   d i s t r i b u t e d   a p p l i c a t i o n   w i t h o u t   a n   i n t e r n a l   m e m b e r   e l e c t i o n   p r o c e s s   W h a t   m i g h t   a n   o p e r a t o r   l o o k   l i k e   i n   m o r e   d e t a i l ?   H e r e ' s   a n   e x a m p l e :   A   c u s t o m   r e s o u r c e   n a m e d   S a m p l e D B ,   t h a t   y o u   c a n   c o n f i g u r e   i n t o   t h e   c l u s t e r . A   D e p l o y m e n t   t h a t   m a k e s   s u r e   a   P o d   i s   r u n n i n g   t h a t   c o n t a i n s   t h e   c o n t r o l l e r   p a r t   o f   t h e   o p e r a t o r . A   c o n t a i n e r   i m a g e   o f   t h e   o p e r a t o r   c o d e . C o n t r o l l e r   c o d e   t h a t   q u e r i e s   t h e   c o n t r o l   p l a n e   t o   f i n d   o u t   w h a t   S a m p l e D B   r e s o u r c e s   a r e   c o n f i g u r e d . T h e   c o r e   o f   t h e   o p e r a t o r   i s   c o d e   t o   t e l l   t h e   A P I   s e r v e r   h o w   t o   m a k e   r e a l i t y   m a t c h   t h e   c o n f


Question: What is Deploying operators?

Answer: T h e   m o s t   c o m m o n   w a y   t o   d e p l o y   a n   o p e r a t o r   i s   t o   a d d   t h e   C u s t o m   R e s o u r c e   D e f i n i t i o n   a n d   i t s   a s s o c i a t e d   C o n t r o l l e r   t o   y o u r   c l u s t e r .   T h e   C o n t r o l l e r   w i l l   n o r m a l l y   r u n   o u t s i d e   o f   t h e   c o n t r o l   p l a n e ,   m u c h   a s   y o u   w o u l d   r u n   a n y   c o n t a i n e r i z e d   a p p l i c a t i o n .   F o r   e x a m p l e ,   y o u   c a n   r u n   t h e   c o n t r o l l e r   i n   y o u r   c l u s t e r   a s   a   D e p l o y m e n t .


Question: What is Using an operator?

Answer: O n c e   y o u   h a v e   a n   o p e r a t o r   d e p l o y e d ,   y o u ' d   u s e   i t   b y   a d d i n g ,   m o d i f y i n g   o r   d e l e t i n g   t h e   k i n d   o f   r e s o u r c e   t h a t   t h e   o p e r a t o r   u s e s .   F o l l o w i n g   t h e   a b o v e   e x a m p l e ,   y o u   w o u l d   s e t   u p   a   D e p l o y m e n t   f o r   t h e   o p e r a t o r   i t s e l f ,   a n d   t h e n :   k u b e c t l   g e t   S a m p l e D B   #   f i n d   c o n f i g u r e d   d a t a b a s e s   k u b e c t l   e d i t   S a m p l e D B / e x a m p l e - d a t a b a s e   #   m a n u a l l y   c h a n g e   s o m e   s e t t i n g s   … a n d   t h a t ' s   i t !   T h e   o p e r a t o r   w i l l   t a k e   c a r e   o f   a p p l y i n g   t h e   c h a n g e s   a s   w e l l   a s   k e e p i n g   t h e   e x i s t i n g   s e r v i c e   i n   g o o d   s h a p e .


Question: What is Writing your own operator?

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


Question: What is What's next?

Answer: R e a d   t h e   C N C F   O p e r a t o r   W h i t e   P a p e r . L e a r n   m o r e   a b o u t   C u s t o m   R e s o u r c e s F i n d   r e a d y - m a d e   o p e r a t o r s   o n   O p e r a t o r H u b . i o   t o   s u i t   y o u r   u s e   c a s e P u b l i s h   y o u r   o p e r a t o r   f o r   o t h e r   p e o p l e   t o   u s e R e a d   C o r e O S '   o r i g i n a l   a r t i c l e   t h a t   i n t r o d u c e d   t h e   o p e r a t o r   p a t t e r n   ( t h i s   i s   a n   a r c h i v e d   v e r s i o n   o f   t h e   o r i g i n a l   a r t i c l e ) . R e a d   a n   a r t i c l e   f r o m   G o o g l e   C l o u d   a b o u t   b e s t   p r a c t i c e s   f o r   b u i l d i n g   o p e r a t o r s   ©   2 0 2 5   T h e   K u b e r n e t e s   A u t h o r s   |   D o c u m e n t a t i o n   D i s t r i b u t e d   u n d e r   C C   B Y   4 . 0   ©   2 0 2 5   T h e   L i n u x   F o u n d a t i o n   ® .   A l l   r i g h t s   r e s e r v e d .   T h e   L i n u x   F o u n d a t i o n   h a s   r e g i s t e r e d   t r a d e m a r k s   a n d   u s e s   t r a d e m a r k s .   F o r   a   l i s t   o f   t r a d e m a r k s   o f   T h e   L i n u x   F o u n d a t i o n ,   p l e a s e   s e e   o u r   T r a d e m a r k   U s a g e   p a g e   I C P   l i c e n s e :   京 I C P 备 1 7 0 7 4 2 6 6 号 - 3


Question: What is GETTING STARTED?

Answer: Kubectl Reference Docs GETTING STARTEDcreateclusterroleclusterrolebindingconfigmapcronjobdeploymentingressjobnamespacepoddisruptionbudgetpriorityclassquotarolerolebindingsecretsecret docker-registrysecret genericsecret tlsserviceservice clusteripservice externalnameservice loadbalancerservice nodeportserviceaccountgetrunexposedeleteAPP MANAGEMENTapplyedit-last-appliedset-last-appliedview-last-appliedannotateautoscaledebugdiffeditkustomizelabelpatchreplacerollouthistorypauserestartresumestatusundoscalesetenvimageresourcesselectorserviceaccountsubjectwaitWORKING WITH APPSattachauthcan-ireconcilecpdescribeexeclogsport-forwardproxytopnodepodCLUSTER MANAGEMENTapi-versionscertificateapprovedenycluster-infodumpcordondraintaintuncordonKUBECTL SETTINGS AND USAGEalphaapi-resourcescompletionconfigcurrent-contextdelete-clusterdelete-contextdelete-userget-clustersget-contextsget-usersrename-contextsetset-clusterset-contextset-credentialsunsetuse-contextviewexplainoptionspluginlistversionCopyright 2020 The Kubernetes Authors. example GETTING STARTED This section contains the most basic commands for getting a workload running on your cluster. run will start running 1 or more instances of a container image on your cluster. expose will load balance traffic across the running instances, and can create a HA proxy for accessing the containers from outside the cluster. Once your workloads are running, you can use the commands in the WORKING WITH APPS section to inspect them. create Create a pod using the data in pod.json kubectl create -f ./pod.json Create a pod based on the JSON passed into stdin cat pod.json | kubectl create -f - Edit the data in docker-registry.yaml in JSON then create the resource using the edited data kubectl create -f docker-registry.yaml --edit -o json Create a resource from a file or from stdin. JSON and YAML formats are accepted. Usage $ kubectl create -f FILENAME Flags Name Shorthand Default Usage allow-missing-template-keys true If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. dry-run none Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource. edit false Edit the API resource before creating field-manager kubectl-create Name of the manager used to track field ownership. filename f [] Filename, directory, or URL to files to use to create the resource kustomize k Process the kustomization directory. This flag can't be used together with -f or -R. output o Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. raw Raw URI to POST to the server. Uses the transport specified by the kubeconfig file. record false Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record


Question: How does GETTING STARTED work?

Answer: Kubectl Reference Docs GETTING STARTEDcreateclusterroleclusterrolebindingconfigmapcronjobdeploymentingressjobnamespacepoddisruptionbudgetpriorityclassquotarolerolebindingsecretsecret docker-registrysecret genericsecret tlsserviceservice clusteripservice externalnameservice loadbalancerservice nodeportserviceaccountgetrunexposedeleteAPP MANAGEMENTapplyedit-last-appliedset-last-appliedview-last-appliedannotateautoscaledebugdiffeditkustomizelabelpatchreplacerollouthistorypauserestartresumestatusundoscalesetenvimageresourcesselectorserviceaccountsubjectwaitWORKING WITH APPSattachauthcan-ireconcilecpdescribeexeclogsport-forwardproxytopnodepodCLUSTER MANAGEMENTapi-versionscertificateapprovedenycluster-infodumpcordondraintaintuncordonKUBECTL SETTINGS AND USAGEalphaapi-resourcescompletionconfigcurrent-contextdelete-clusterdelete-contextdelete-userget-clustersget-contextsget-usersrename-contextsetset-clusterset-contextset-credentialsunsetuse-contextviewexplainoptionspluginlistversionCopyright 2020 The Kubernetes Authors. example GETTING STARTED This section contains the most basic commands for getting a workload running on your cluster. run will start running 1 or more instances of a container image on your cluster. expose will load balance traffic across the running instances, and can create a HA proxy for accessing the containers from outside the cluster. Once your workloads are running, you can use the commands in the WORKING WITH APPS section to inspect them. create Create a pod using the data in pod.json kubectl create -f ./pod.json Create a pod based on the JSON passed into stdin cat pod.json | kubectl create -f - Edit the data in docker-registry.yaml in JSON then create the resource using the edited data kubectl create -f docker-registry.yaml --edit -o json Create a resource from a file or from stdin. JSON and YAML formats are accepted. Usage $ kubectl create -f FILENAME Flags Name Shorthand Default Usage allow-missing-template-keys true If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. dry-run none Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource. edit false Edit the API resource before creating field-manager kubectl-create Name of the manager used to track field ownership. filename f [] Filename, directory, or URL to files to use to create the resource kustomize k Process the kustomization directory. This flag can't be used together with -f or -R. output o Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. raw Raw URI to POST to the server. Uses the transport specified by the kubeconfig file. record false Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record


Question: When would you use GETTING STARTED?

Answer: Kubectl Reference Docs GETTING STARTEDcreateclusterroleclusterrolebindingconfigmapcronjobdeploymentingressjobnamespacepoddisruptionbudgetpriorityclassquotarolerolebindingsecretsecret docker-registrysecret genericsecret tlsserviceservice clusteripservice externalnameservice loadbalancerservice nodeportserviceaccountgetrunexposedeleteAPP MANAGEMENTapplyedit-last-appliedset-last-appliedview-last-appliedannotateautoscaledebugdiffeditkustomizelabelpatchreplacerollouthistorypauserestartresumestatusundoscalesetenvimageresourcesselectorserviceaccountsubjectwaitWORKING WITH APPSattachauthcan-ireconcilecpdescribeexeclogsport-forwardproxytopnodepodCLUSTER MANAGEMENTapi-versionscertificateapprovedenycluster-infodumpcordondraintaintuncordonKUBECTL SETTINGS AND USAGEalphaapi-resourcescompletionconfigcurrent-contextdelete-clusterdelete-contextdelete-userget-clustersget-contextsget-usersrename-contextsetset-clusterset-contextset-credentialsunsetuse-contextviewexplainoptionspluginlistversionCopyright 2020 The Kubernetes Authors. example GETTING STARTED This section contains the most basic commands for getting a workload running on your cluster. run will start running 1 or more instances of a container image on your cluster. expose will load balance traffic across the running instances, and can create a HA proxy for accessing the containers from outside the cluster. Once your workloads are running, you can use the commands in the WORKING WITH APPS section to inspect them. create Create a pod using the data in pod.json kubectl create -f ./pod.json Create a pod based on the JSON passed into stdin cat pod.json | kubectl create -f - Edit the data in docker-registry.yaml in JSON then create the resource using the edited data kubectl create -f docker-registry.yaml --edit -o json Create a resource from a file or from stdin. JSON and YAML formats are accepted. Usage $ kubectl create -f FILENAME Flags Name Shorthand Default Usage allow-missing-template-keys true If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. dry-run none Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource. edit false Edit the API resource before creating field-manager kubectl-create Name of the manager used to track field ownership. filename f [] Filename, directory, or URL to files to use to create the resource kustomize k Process the kustomization directory. This flag can't be used together with -f or -R. output o Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. raw Raw URI to POST to the server. Uses the transport specified by the kubeconfig file. record false Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record


Question: What are the benefits of GETTING STARTED?

Answer: Kubectl Reference Docs GETTING STARTEDcreateclusterroleclusterrolebindingconfigmapcronjobdeploymentingressjobnamespacepoddisruptionbudgetpriorityclassquotarolerolebindingsecretsecret docker-registrysecret genericsecret tlsserviceservice clusteripservice externalnameservice loadbalancerservice nodeportserviceaccountgetrunexposedeleteAPP MANAGEMENTapplyedit-last-appliedset-last-appliedview-last-appliedannotateautoscaledebugdiffeditkustomizelabelpatchreplacerollouthistorypauserestartresumestatusundoscalesetenvimageresourcesselectorserviceaccountsubjectwaitWORKING WITH APPSattachauthcan-ireconcilecpdescribeexeclogsport-forwardproxytopnodepodCLUSTER MANAGEMENTapi-versionscertificateapprovedenycluster-infodumpcordondraintaintuncordonKUBECTL SETTINGS AND USAGEalphaapi-resourcescompletionconfigcurrent-contextdelete-clusterdelete-contextdelete-userget-clustersget-contextsget-usersrename-contextsetset-clusterset-contextset-credentialsunsetuse-contextviewexplainoptionspluginlistversionCopyright 2020 The Kubernetes Authors. example GETTING STARTED This section contains the most basic commands for getting a workload running on your cluster. run will start running 1 or more instances of a container image on your cluster. expose will load balance traffic across the running instances, and can create a HA proxy for accessing the containers from outside the cluster. Once your workloads are running, you can use the commands in the WORKING WITH APPS section to inspect them. create Create a pod using the data in pod.json kubectl create -f ./pod.json Create a pod based on the JSON passed into stdin cat pod.json | kubectl create -f - Edit the data in docker-registry.yaml in JSON then create the resource using the edited data kubectl create -f docker-registry.yaml --edit -o json Create a resource from a file or from stdin. JSON and YAML formats are accepted. Usage $ kubectl create -f FILENAME Flags Name Shorthand Default Usage allow-missing-template-keys true If true, ignore any errors in templates when a field or map key is missing in the template. Only applies to golang and jsonpath output formats. dry-run none Must be "none", "server", or "client". If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource. edit false Edit the API resource before creating field-manager kubectl-create Name of the manager used to track field ownership. filename f [] Filename, directory, or URL to files to use to create the resource kustomize k Process the kustomization directory. This flag can't be used together with -f or -R. output o Output format. One of: json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file. raw Raw URI to POST to the server. Uses the transport specified by the kubeconfig file. record false Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record


Question: What is GETTING STARTED?

Answer: T h i s   s e c t i o n   c o n t a i n s   t h e   m o s t   b a s i c   c o m m a n d s   f o r   g e t t i n g   a   w o r k l o a d   r u n n i n g   o n   y o u r   c l u s t e r .   r u n   w i l l   s t a r t   r u n n i n g   1   o r   m o r e   i n s t a n c e s   o f   a   c o n t a i n e r   i m a g e   o n   y o u r   c l u s t e r .   e x p o s e   w i l l   l o a d   b a l a n c e   t r a f f i c   a c r o s s   t h e   r u n n i n g   i n s t a n c e s ,   a n d   c a n   c r e a t e   a   H A   p r o x y   f o r   a c c e s s i n g   t h e   c o n t a i n e r s   f r o m   o u t s i d e   t h e   c l u s t e r .   O n c e   y o u r   w o r k l o a d s   a r e   r u n n i n g ,   y o u   c a n   u s e   t h e   c o m m a n d s   i n   t h e   W O R K I N G   W I T H   A P P S   s e c t i o n   t o   i n s p e c t   t h e m .


Question: What is create?

Answer: C r e a t e   a   p o d   u s i n g   t h e   d a t a   i n   p o d . j s o n   k u b e c t l   c r e a t e   - f   . / p o d . j s o n   C r e a t e   a   p o d   b a s e d   o n   t h e   J S O N   p a s s e d   i n t o   s t d i n   c a t   p o d . j s o n   |   k u b e c t l   c r e a t e   - f   -   E d i t   t h e   d a t a   i n   d o c k e r - r e g i s t r y . y a m l   i n   J S O N   t h e n   c r e a t e   t h e   r e s o u r c e   u s i n g   t h e   e d i t e d   d a t a   k u b e c t l   c r e a t e   - f   d o c k e r - r e g i s t r y . y a m l   - - e d i t   - o   j s o n   C r e a t e   a   r e s o u r c e   f r o m   a   f i l e   o r   f r o m   s t d i n .   J S O N   a n d   Y A M L   f o r m a t s   a r e   a c c e p t e d .


Question: What is Usage?

Answer: $   k u b e c t l   c r e a t e   - f   F I L E N A M E


Question: What is clusterrole?

Answer: C r e a t e   a   c l u s t e r   r o l e   n a m e d   " p o d - r e a d e r "   t h a t   a l l o w s   u s e r   t o   p e r f o r m   " g e t " ,   " w a t c h "   a n d   " l i s t "   o n   p o d s   k u b e c t l   c r e a t e   c l u s t e r r o l e   p o d - r e a d e r   - - v e r b = g e t , l i s t , w a t c h   - - r e s o u r c e = p o d s   C r e a t e   a   c l u s t e r   r o l e   n a m e d   " p o d - r e a d e r "   w i t h   R e s o u r c e N a m e   s p e c i f i e d   k u b e c t l   c r e a t e   c l u s t e r r o l e   p o d - r e a d e r   - - v e r b = g e t   - - r e s o u r c e = p o d s   - - r e s o u r c e - n a m e = r e a d a b l e p o d   - - r e s o u r c e - n a m e = a n o t h e r p o d   C r e a t e   a   c l u s t e r   r o l e   n a m e d   " f o o "   w i t h   A P I   G r o u p   s p e c i f i e d   k u b e c t l   c r e a t e   c l u s t e r r o l e   f o o   - - v e r b = g e t , l i s t , w a t c h   - - r e s o u r c e = r s . e x t e n s i o n s   C r e a t e   a   c l u s t e r   r o l e   n a m e d   " f o o "   w i t h   S u b R e s o u r c e   s p e c i f i e d   k u b e c t l   c r e a t e   c l u s t e r r o l e   f o o   - - v e r b = g e t , l i s t , w a t c h   - - r e s o u r c e = p o d s , p o d s / s t a t u s   C r e a t e   a   c l u s t e r   r o l e   n a m e   " f o o "   w i t h   N o n R e s o u r c e U R L   s p e c i f i e d   k u b e c t l   c r e a t e   c l u s t e r r o l e   " f o o "   - - v e r b = g e t   - - n o n - r e s o u r c e - u r l = / l o g s / *   C r e a t e   a   c l u s t e r   r o l e   n a m e   " m o n i t o r i n g "   w i t h   A g g r e g a t i o n R u l e   s p e c i f i e d   k u b e c t l   c r e a t e   c l u s t e r r o l e   m o n i t o r i n g   - - a g g r e g a t i o n - r u l e = " r b a c . e x a m p l e . c o m / a g g r e g a t e - t o - m o n i t o r i n g = t r u e "   C r e a t e   a   c l u s t e r   r o l e .


Question: What is Usage?

Answer: $   k u b e c t l   c r e a t e   c l u s t e r r o l e   N A M E   - - v e r b = v e r b   - - r e s o u r c e = r e s o u r c e . g r o u p   [ - - r e s o u r c e - n a m e = r e s o u r c e n a m e ]   [ - - d r y - r u n = s e r v e r | c l i e n t | n o n e ]


Question: What is clusterrolebinding?

Answer: C r e a t e   a   c l u s t e r   r o l e   b i n d i n g   f o r   u s e r 1 ,   u s e r 2 ,   a n d   g r o u p 1   u s i n g   t h e   c l u s t e r - a d m i n   c l u s t e r   r o l e   k u b e c t l   c r e a t e   c l u s t e r r o l e b i n d i n g   c l u s t e r - a d m i n   - - c l u s t e r r o l e = c l u s t e r - a d m i n   - - u s e r = u s e r 1   - - u s e r = u s e r 2   - - g r o u p = g r o u p 1   C r e a t e   a   c l u s t e r   r o l e   b i n d i n g   f o r   a   p a r t i c u l a r   c l u s t e r   r o l e .


Question: What is Usage?

Answer: $   k u b e c t l   c r e a t e   c l u s t e r r o l e b i n d i n g   N A M E   - - c l u s t e r r o l e = N A M E   [ - - u s e r = u s e r n a m e ]   [ - - g r o u p = g r o u p n a m e ]   [ - - s e r v i c e a c c o u n t = n a m e s p a c e : s e r v i c e a c c o u n t n a m e ]   [ - - d r y - r u n = s e r v e r | c l i e n t | n o n e ]


Question: What is configmap?

Answer: C r e a t e   a   n e w   c o n f i g   m a p   n a m e d   m y - c o n f i g   b a s e d   o n   f o l d e r   b a r   k u b e c t l   c r e a t e   c o n f i g m a p   m y - c o n f i g   - - f r o m - f i l e = p a t h / t o / b a r   C r e a t e   a   n e w   c o n f i g   m a p   n a m e d   m y - c o n f i g   w i t h   s p e c i f i e d   k e y s   i n s t e a d   o f   f i l e   b a s e n a m e s   o n   d i s k   k u b e c t l   c r e a t e   c o n f i g m a p   m y - c o n f i g   - - f r o m - f i l e = k e y 1 = / p a t h / t o / b a r / f i l e 1 . t x t   - - f r o m - f i l e = k e y 2 = / p a t h / t o / b a r / f i l e 2 . t x t   C r e a t e   a   n e w   c o n f i g   m a p   n a m e d   m y - c o n f i g   w i t h   k e y 1 = c o n f i g 1   a n d   k e y 2 = c o n f i g 2   k u b e c t l   c r e a t e   c o n f i g m a p   m y - c o n f i g   - - f r o m - l i t e r a l = k e y 1 = c o n f i g 1   - - f r o m - l i t e r a l = k e y 2 = c o n f i g 2   C r e a t e   a   n e w   c o n f i g   m a p   n a m e d   m y - c o n f i g   f r o m   t h e   k e y = v a l u e   p a i r s   i n   t h e   f i l e   k u b e c t l   c r e a t e   c o n f i g m a p   m y - c o n f i g   - - f r o m - f i l e = p a t h / t o / b a r   C r e a t e   a   n e w   c o n f i g   m a p   n a m e d   m y - c o n f i g   f r o m   a n   e n v   f i l e   k u b e c t l   c r e a t e   c o n f i g m a p   m y - c o n f i g   - - f r o m - e n v - f i l e = p a t h / t o / b a r . e n v   C r e a t e   a   c o n f i g   m a p   b a s e d   o n   a   f i l e ,   d i r e c t o r y ,   o r   s p e c i f i e d   l i t e r a l   v a l u e .   A   s i n g l e   c o n f i g   m a p   m a y   p a c k a g e   o n e   o r   m o r e   k e y / v a l u e   p a i r s .   W h e n   c r e a t i n g   a   c o n f i g   m a p   b a s e d   o n   a   f i l e ,   t h e   k e y   w i l l   d e f a u l t   t o   t h e   b a s e n a m e   o f   t h e   f i l e ,   a n d   t h e   v a l u e   w


Question: What is Usage?

Answer: $   k u b e c t l   c r e a t e   c o n f i g m a p   N A M E   [ - - f r o m - f i l e = [ k e y = ] s o u r c e ]   [ - - f r o m - l i t e r a l = k e y 1 = v a l u e 1 ]   [ - - d r y - r u n = s e r v e r | c l i e n t | n o n e ]


Question: What is cronjob?

Answer: C r e a t e   a   c r o n   j o b   k u b e c t l   c r e a t e   c r o n j o b   m y - j o b   - - i m a g e = b u s y b o x   - - s c h e d u l e = " * / 1   *   *   *   * "   C r e a t e   a   c r o n   j o b   w i t h   a   c o m m a n d   k u b e c t l   c r e a t e   c r o n j o b   m y - j o b   - - i m a g e = b u s y b o x   - - s c h e d u l e = " * / 1   *   *   *   * "   - -   d a t e   C r e a t e   a   c r o n   j o b   w i t h   t h e   s p e c i f i e d   n a m e .


Question: What is Usage?

Answer: $   k u b e c t l   c r e a t e   c r o n j o b   N A M E   - - i m a g e = i m a g e   - - s c h e d u l e = ' 0 / 5   *   *   *   ? '   - -   [ C O M M A N D ]   [ a r g s . . . ]


Question: What is deployment?

Answer: C r e a t e   a   d e p l o y m e n t   n a m e d   m y - d e p   t h a t   r u n s   t h e   b u s y b o x   i m a g e   k u b e c t l   c r e a t e   d e p l o y m e n t   m y - d e p   - - i m a g e = b u s y b o x   C r e a t e   a   d e p l o y m e n t   w i t h   a   c o m m a n d   k u b e c t l   c r e a t e   d e p l o y m e n t   m y - d e p   - - i m a g e = b u s y b o x   - -   d a t e   C r e a t e   a   d e p l o y m e n t   n a m e d   m y - d e p   t h a t   r u n s   t h e   n g i n x   i m a g e   w i t h   3   r e p l i c a s   k u b e c t l   c r e a t e   d e p l o y m e n t   m y - d e p   - - i m a g e = n g i n x   - - r e p l i c a s = 3   C r e a t e   a   d e p l o y m e n t   n a m e d   m y - d e p   t h a t   r u n s   t h e   b u s y b o x   i m a g e   a n d   e x p o s e   p o r t   5 7 0 1   k u b e c t l   c r e a t e   d e p l o y m e n t   m y - d e p   - - i m a g e = b u s y b o x   - - p o r t = 5 7 0 1   C r e a t e   a   d e p l o y m e n t   w i t h   t h e   s p e c i f i e d   n a m e .


Question: What is Usage?

Answer: $   k u b e c t l   c r e a t e   d e p l o y m e n t   N A M E   - - i m a g e = i m a g e   - -   [ C O M M A N D ]   [ a r g s . . . ]


Question: What is ingress?

Answer: C r e a t e   a   s i n g l e   i n g r e s s   c a l l e d   ' s i m p l e '   t h a t   d i r e c t s   r e q u e s t s   t o   f o o . c o m / b a r   t o   s v c   #   s v c 1 : 8 0 8 0   w i t h   a   t l s   s e c r e t   " m y - c e r t "   k u b e c t l   c r e a t e   i n g r e s s   s i m p l e   - - r u l e = " f o o . c o m / b a r = s v c 1 : 8 0 8 0 , t l s = m y - c e r t "   C r e a t e   a   c a t c h   a l l   i n g r e s s   o f   " / p a t h "   p o i n t i n g   t o   s e r v i c e   s v c : p o r t   a n d   I n g r e s s   C l a s s   a s   " o t h e r i n g r e s s "   k u b e c t l   c r e a t e   i n g r e s s   c a t c h - a l l   - - c l a s s = o t h e r i n g r e s s   - - r u l e = " / p a t h = s v c : p o r t "   C r e a t e   a n   i n g r e s s   w i t h   t w o   a n n o t a t i o n s :   i n g r e s s . a n n o t a t i o n 1   a n d   i n g r e s s . a n n o t a t i o n s 2   k u b e c t l   c r e a t e   i n g r e s s   a n n o t a t e d   - - c l a s s = d e f a u l t   - - r u l e = " f o o . c o m / b a r = s v c : p o r t "   \   - - a n n o t a t i o n   i n g r e s s . a n n o t a t i o n 1 = f o o   \   - - a n n o t a t i o n   i n g r e s s . a n n o t a t i o n 2 = b l a   C r e a t e   a n   i n g r e s s   w i t h   t h e   s a m e   h o s t   a n d   m u l t i p l e   p a t h s   k u b e c t l   c r e a t e   i n g r e s s   m u l t i p a t h   - - c l a s s = d e f a u l t   \   - - r u l e = " f o o . c o m / = s v c : p o r t "   \   - - r u l e = " f o o . c o m / a d m i n / = s v c a d m i n : p o r t a d m i n "   C r e a t e   a n   i n g r e s s   w i t h   m u l t i p l e   h o s t s   a n d   t h e   p a t h T y p e   a s   P r e f i x   k u b e c t l   c r e a t e   i n g r e s s   i n g r e s s 1   - - c l a s s = d e f a u l t   \   - - r u l e = " f o o . c o m / p a t h * = s v c : 8 0 8 0 "   \   - - r u l e = " b a r . c o m / a d m i n * = s v c 2 : h t t p "   C r e a t e   a n   i n g r e s s


Question: What is Usage?

Answer: $   k u b e c t l   c r e a t e   i n g r e s s   N A M E   - - r u l e = h o s t / p a t h = s e r v i c e : p o r t [ , t l s [ = s e c r e t ] ]