{"id":2937,"date":"2020-04-17T19:01:47","date_gmt":"2020-04-17T23:01:47","guid":{"rendered":"http:\/\/arielantigua.com\/weblog\/?p=2937"},"modified":"2021-02-19T14:09:51","modified_gmt":"2021-02-19T18:09:51","slug":"optimizando-el-uso-de-kubectl-usando-krew","status":"publish","type":"post","link":"https:\/\/arielantigua.com\/weblog\/2020\/04\/optimizando-el-uso-de-kubectl-usando-krew\/","title":{"rendered":"Optimizando el uso de kubectl usando Krew!"},"content":{"rendered":"<p>Optimizando el uso de kubectl usando Krew!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"651\" height=\"227\" class=\"wp-image-2938\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image.png 651w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image-300x105.png 300w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image-650x227.png 650w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/p>\n<p><strong>Kubectl<\/strong>&nbsp;es una&nbsp;interfaz de l\u00ednea de comandos&nbsp;para ejecutar comandos sobre despliegues clusterizados de&nbsp;<strong>Kubernetes<\/strong>. Esta interfaz es la manera est\u00e1ndar de comunicaci\u00f3n con el cl\u00faster ya que permite realizar todo tipo de operaciones sobre el mismo. Desde desplegar servicios, pods o vol\u00famenes hasta conseguir toda la informaci\u00f3n del cl\u00faster de <strong>Kubernetes<\/strong>. (fuente: Wikipedia)<\/p>\n<p>Una vez que iniciamos el uso de <strong>Kubernetes<\/strong>, encontramos que las opciones que nos brinda kubectl son dif\u00edciles de recordar, por ejemplo, trabajar en un namespaces. Estar siempre indicando de cual namespace quiero ver los pods es tedioso y a la larga cansa.<\/p>\n<p>Ah\u00ed es donde entran los plugins de kubectl que sirven para extender el uso de este CLI. Para sacar partido a esta plataforma de plugins podemos instalar krew.<\/p>\n<p><!--more--><\/p>\n<p><strong>Krew<\/strong><\/p>\n<p>Es una herramienta que hace f\u00e1cil el uso de los plugins de kubectl, nos ayuda a buscar, instalar y actualizar plugins de una manera f\u00e1cil.<\/p>\n<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/krew\">https:\/\/github.com\/kubernetes-sigs\/krew<\/a><\/p>\n<ul>\n<li><strong>For kubectl users:<\/strong>&nbsp;Krew helps you find, install and manage kubectl plugins in a consistent way.<\/li>\n<li><strong>For plugin developers:<\/strong>&nbsp;Krew helps you package and distribute your plugins on multiple platforms and makes them discoverable.<\/li>\n<\/ul>\n<p><strong>Instalando Krew<\/strong><\/p>\n<p><a href=\"https:\/\/krew.sigs.k8s.io\/docs\/user-guide\/setup\/install\/\">https:\/\/krew.sigs.k8s.io\/docs\/user-guide\/setup\/install\/<\/a><\/p>\n<p>Antes de ejecutar el comando de instalaci\u00f3n debemos asegurarnos de tener git instalado. Luego agregamos la ruta con los ejecutables necesarios a nuestro PATH.<\/p>\n<p><em>export<\/em> <em>PATH<\/em>=\u00bb${<em>KREW_ROOT<\/em>:-<em>$HOME<\/em>\/.krew}\/bin:<em>$PATH<\/em>\u00bb<\/p>\n<p>Probamos que todo funciona ejecutando kubectl krew<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"590\" height=\"430\" class=\"wp-image-2939\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image-1.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image-1.png 590w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image-1-300x219.png 300w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><\/p>\n<p>Actualmente sigo explorando que plugins mejoraran el uso de kubectl en mi flujo. Por le momento tengo instalado los siguientes.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"381\" height=\"160\" class=\"wp-image-2940\" src=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image-2.png\" srcset=\"https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image-2.png 381w, https:\/\/arielantigua.com\/weblog\/wp-content\/uploads\/2020\/04\/word-image-2-300x126.png 300w\" sizes=\"auto, (max-width: 381px) 100vw, 381px\" \/><\/p>\n<p>En mi caso, los m\u00e1s usados son ns y ctx.<\/p>\n<blockquote><p>ns Switch between Kubernetes namespaces<\/p>\n<p>ctx Switch between contexts in your kubeconfig<\/p><\/blockquote>\n<p>Hasta el momento se cuentan con mas de 90 plugins en krew-index.<\/p>\n<p><a href=\"https:\/\/github.com\/kubernetes-sigs\/krew-index\/blob\/master\/plugins.md\">https:\/\/github.com\/kubernetes-sigs\/krew-index\/blob\/master\/plugins.md<\/a><\/p>\n<p>Espero que otros le saquen partido a esto!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Optimizando el uso de kubectl usando Krew! Kubectl&nbsp;es una&nbsp;interfaz de l\u00ednea de comandos&nbsp;para ejecutar comandos sobre despliegues clusterizados de&nbsp;Kubernetes. Esta interfaz es la manera est\u00e1ndar de comunicaci\u00f3n con el cl\u00faster ya que permite realizar todo tipo de operaciones sobre el mismo. Desde desplegar servicios, pods o vol\u00famenes hasta conseguir toda la informaci\u00f3n del cl\u00faster de [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,128,131],"tags":[139],"class_list":["post-2937","post","type-post","status-publish","format-standard","hentry","category-general","category-kubernetes","category-rancher","tag-kubernetes"],"_links":{"self":[{"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/posts\/2937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/comments?post=2937"}],"version-history":[{"count":0,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/posts\/2937\/revisions"}],"wp:attachment":[{"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/media?parent=2937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/categories?post=2937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arielantigua.com\/weblog\/wp-json\/wp\/v2\/tags?post=2937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}