博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
helm 和kubectl_适用于初学者的基本kubectl和Helm命令
阅读量:2540 次
发布时间:2019-05-11

本文共 4237 字,大约阅读时间需要 14 分钟。

helm 和kubectl

最近,我丈夫告诉我即将进行的工作面试,他将不得不通过计算机上的一些基本命令进行操作。 他对面试感到焦虑,但是学习和记住事情的最好方法一直是将他不知道的事情等同于他非常熟悉的事情。 因为我们的谈话是在我逛杂货店试图决定当晚要烹饪的食物之后发生的,所以启发了我写kubectl和Helm命令,相当于将它们等同于一次去杂货店的行程。

是在Kubernetes中管理应用程序的工具。 您可以轻松地使用您的应用程序信息来部署图表,从而允许它们在您的Kubernetes环境中在几分钟之内完成设置和预配置。 在学习新知识时,查看图表示例以了解其用法总是有帮助的,因此,如果有时间,请查看这些稳定的 。

是与Kubernetes环境连接的命令行,允许您配置和管理集群。 它确实需要一些配置才能在环境中工作,因此请仔细阅读以了解您需要做什么。

现在我们已经解决了,让我们开始购买基本的kubectl和Helm命令!

舵表

您去商店之前要做的第一件事是什么? 好吧,如果您有条理,就列出一个清单 。 同样,这是我将解释的第一个基本Helm命令。

在部署了Helm的应用程序中, 列表提供了有关应用程序当前版本的详细信息。 在此示例中,我有一个已部署的应用程序-Jenkins CI / CD应用程序。 运行基本列表命令始终会显示默认名称空间。 由于我没有在默认名称空间中部署任何内容,因此不会显示任何内容:

$ helm list     
NAME    NAMESPACE    REVISION    UPDATED    STATUS    CHART    APP VERSION

但是,如果运行带有额外标志的命令,则会显示我的应用程序和信息:

$ helm list      
--all-namespaces
NAME     NAMESPACE  REVISION  UPDATED                   STATUS      CHART           APP  VERSION
jenkins  jenkins        
1        
2020 -01-
18
16 :
18 :07 EST   deployed    jenkins-1.9.4   lts

最后,我可以指示list命令仅检查我要从中获取信息的名称空间:

$ helm list      
--namespace jenkins
NAME     NAMESPACE  REVISION  UPDATED                   STATUS    CHART          APP VERSION
jenkins    jenkins      
1              
2020 -01-
18
16 :
18 :07 EST  deployed  jenkins-1.9.4  lts    

现在我有了列表,知道列表上有什么,我可以使用get命令来获取我的物品! 我将从Kubernetes集群开始; 我能从中得到什么?

Kubectl得到

kubectl get命令提供有关Kubernetes中许多内容的信息,包括Pod,节点和名称空间。 同样,没有名称空间标志,您将始终使用默认名称。 首先,我将获得集群中的名称空间以查看正在运行的名称空间:

$ kubectl get namespaces     
NAME             STATUS   AGE
default          Active   53m
jenkins          Active   44m
kube-node-lease  Active   53m
kube-public      Active   53m
kube-system      Active   53m

现在我已经在环境中运行了名称空间,接下来我将获取节点并查看正在运行的节点数:

$ kubectl get nodes     
NAME       STATUS   ROLES       AGE   VERSION
minikube   Ready    master  55m   v1.16.2

我有一个节点正在运行,主要是因为我的Minikube在一台小型服务器上运行。 要使Pod在我的一个节点上运行:

$ kubectl get pods     
No resources found
in default namespace.

糟糕,它是空的。 我将通过以下方式获取Jenkins命名空间中的内容:

$ kubectl get pods      
--namespace jenkins
NAME                      READY  STATUS   RESTARTS  AGE
jenkins-7fc688c874-mh7gv  
1
/
1    Running  
0         40m

好消息! 有一个Pod,它尚未重新启动,并且已运行40分钟。 好吧,因为我知道吊舱已经打开,所以我想看看从Helm可以得到什么。

掌舵人

Helm get有点复杂,因为此get命令需要的不只是应用程序名称,而且您可以从应用程序中请求多个内容。 我将从获取用于制作应用程序的值开始,然后展示“ 获取全部”操作的片段,该操作将提供与该应用程序相关的所有数据。

$ helm get values jenkins      
-n jenkins
USER-SUPPLIED VALUES:
null

由于我只进行了最小限度的仅稳定安装,因此配置没有更改。 如果我运行all命令,那么我将得到所有图表:

$  helm get all jenkins -n jenkins
output from helm get all command

这会产生大量数据,因此我始终建议保留一份Helm图表的副本,以便您可以查看图表中的模板。 我还创建自己的价值观来了解自己所拥有的。

现在,我所有的好东西都放在购物车中,接下来我将检查描述其中所含物品的标签。 这些示例仅与kubectl有关,它们描述了我通过Helm部署的内容。

Kubectl描述

正如我使用get命令所做的那样,该命令可以描述Kubernetes中的几乎所有内容,我将示例限制在名称空间,pod和节点上。 由于我知道我正在与每个人一起工作,因此这很容易。

$ kubectl describe ns jenkins     
Name:           jenkins
Labels:        
< none
>
Annotations:  
< none
>
Status:         Active
No resource quota.
No resource limits.

我可以看到我的名称空间的名称,并且它是活动的,没有资源或引用限制。

describe pods命令会产生大量信息,因此我将提供一小段输出。 如果您在不使用Pod名称的情况下运行该命令,它将返回名称空间中所有Pod的信息,这可能会很麻烦。 因此,请确保在此命令中始终包含容器名称。 例如:

$  kubectl describe pods jenkins-7fc688c874-mh7gv --namespace jenkins
output of kubectl-describe-pods

这将提供(除其他事项外)容器的状态,容器的管理方式,标签以及吊舱中使用的图像。 不在此缩写输出中的数据包括资源请求和限制以及在Helm值文件中应用的任何条件,初始化容器和存储量信息。 如果您的应用程序由于资源不足而崩溃,配置的初始化容器运行用于配置的规范,或者生成的隐藏密码不应该存在于纯文本YAML文件中,则此数据很有用。

最后,我将使用describe node ,(当然)将描述节点。 由于本示例只有一个名为Minikube的示例,因此我将使用它。 如果您的环境中有多个节点,则必须包含感兴趣的节点名称。

与pod一样,node命令会产生大量数据,因此我将仅包含输出片段。

$  kubectl describe node minikube
output of kubectl describe node

请注意, describe节点是更重要的基本命令之一。 如该图所示,该命令返回统计信息,该统计信息指示节点何时资源用尽,并且该数据非常适合在需要扩展时(如果您的环境中没有自动扩展)向您发出警报。 此输出摘要中未包含的其他内容包括对所有资源和限制的请求百分比,以及资源的使用期限和分配(例如,对于我的应用程序)。

签出

使用这些命令,我​​完成了购物并得到了我想要的一切。 希望这些基本命令在使用Kubernetes的日常工作中也能为您提供帮助。

我敦促您经常使用命令行并学习“帮助”部分中的速记标志,您可以通过运行以下命令来访问这些标志:

$  helm --help

$  kubectl -h

花生酱和果冻

有些东西像花生酱和果冻一样混在一起。 Helm和kubectl有点像那样。

我经常在自己的环境中使用这些工具。 因为它们在很多地方都有很多相似之处,所以在使用其中一个之后,我通常需要跟进另一个。 例如,我可以进行Helm部署,并使用kubectl观察它是否失败。 一起尝试,看看他们能为您做什么。

翻译自:

helm 和kubectl

转载地址:http://eiszd.baihongyu.com/

你可能感兴趣的文章
UIView的layoutSubviews,initWithFrame,initWithCoder方法
查看>>
STM32+IAP方案 实现网络升级应用固件
查看>>
用74HC165读8个按键状态
查看>>
jpg转bmp(使用libjpeg)
查看>>
linear-gradient常用实现效果
查看>>
sql语言的一大类 DML 数据的操纵语言
查看>>
VMware黑屏解决方法
查看>>
JS中各种跳转解析
查看>>
JAVA 基础 / 第八课:面向对象 / JAVA类的方法与实例方法
查看>>
Ecust OJ
查看>>
P3384 【模板】树链剖分
查看>>
Thrift源码分析(二)-- 协议和编解码
查看>>
考勤系统之计算工作小时数
查看>>
4.1 分解条件式
查看>>
Equivalent Strings
查看>>
flume handler
查看>>
收藏其他博客园主写的代码,学习加自用。先表示感谢!!!
查看>>
H5 表单标签
查看>>
su 与 su - 区别
查看>>
C语言编程-9_4 字符统计
查看>>