人手一套的K8S命令集合,它来了!

举报
wljslmz 发表于 2022/08/16 10:40:42 2022/08/16
【摘要】 K8S在容器技术盛行的时代已经称为标配技术,本文瑞哥开始给大家介绍了K8S的基本知识,然后列举了K8S的命令列表,最后还给大家提炼出高频使用的命令,希望本文能够给您带来帮助。

你好,这里是网络技术联盟站。

上次给大家介绍了Docker常用的命令,反响不错,评论区有小伙伴想要K8S的命令合集,那么今天瑞哥就来安排一下!

在开始列举K8S命令集前,先给大家简单介绍一下K8S的基本理论。

什么是K8S?

K8S其实是Kubernetes,由于Kubernetes读起来像K8S,所以久而久之,大家就将Kubernetes简称为K8S了。

K8S 最初由 Google 开发,其实就是一个容器或微服务平台,用于编排计算、网络和存储基础设施工作负载。

所谓容器,就是提供了一种打包代码、运行时、系统工具、系统库和配置的方法,也就是就是说有了这个容器,不管你将此放到哪个相同系统的服务器上,都能完好的运行程序,最好的例子就是Docker。

K8S的优势

K8S的优势就是为啥大多数企业和组织选择K8S,简单来说一般有以下四个优点:

1、提升工作效率

K8S提供一个PaaS平台,创建了一个硬件抽象层,使用者可以快速有效地请求他们需要的资源,如果他们需要更多资源来处理额外的工作,也可以快速的扩展,只需点一点就能快速配置,并且可以利用 Kubernetes 开发的工具来实现自动化打包、部署和测试。

2、灵活性

容器引擎是运行容器的程序,K8S支持多种类型的容器运行时和基础设施,只要它们具有某些版本的 Linux 或 Windows,K8s 的可移植性使开发团队可以轻松切换引擎、服务器或环境配置。

3、节约成本

K8S不仅可以节省人力成本、还能节省物力成本,通过动态和智能的容器管理,K8S可以帮助企业节省其生态系统管理,确保跨多个环境的可扩展性。资源分配会根据实际应用程序需求自动调整,同时减少基础架构上的低级手动操作。有了自动化,IT 团队不再需要执行大量与系统管理相关的操作任务,可以将大量的精力用在更有意义的事情上,这极大的节省了企业的成本。

4、开源

K8S是一个完全开源的、由社区主导的项目,由 CNCF 监督,它有几家主要的企业赞助商,对于许多企业来说,这种开源策略使K8S优于闭源编排器。

K8S命令备忘录

1、列举资源

生成所有命名空间的纯文本列表:

kubectl get namespaces

显示所有 pod 的纯文本列表:

kubectl get pods

生成所有 pod 的详细纯文本列表,包含节点名称等信息:

kubectl get pods -o wide

显示在特定节点服务器上运行的所有 pod 的列表:

kubectl get pods --field-selector=spec.nodeName=[server-name]

以纯文本形式列出特定的复制控制器:

kubectl get replicationcontroller [replication-controller-name]

生成所有复制控制器和服务的纯文本列表:

kubectl get replicationcontroller,services

显示所有守护程序集的纯文本列表:

kubectl get daemonset

2、部署

创建一个新的部署

kubectl create deployment <deployment_name>

列出一个或多个部署

kubectl get deployment

列出一个或多个部署的详细状态

kubectl describe deployment <deployment_name>

删除部署

kubectl delete deployment<deployment_name>

3、命名空间相关

按给定名称创建命名空间

kubectl create namespace <namespace_name>

列出集群中的当前命名空间

kubectl get namespace

显示一个或多个命名空间的详细状态

kubectl describe namespace <namespace_name>

删除命名空间

kubectl delete namespace <namespace_name>

编辑和更新命名空间的定义

kubectl edit namespace <namespace_name>

4、执行命令

接收在 pod 中的第一个容器上运行的命令的输出:

kubectl exec [pod-name] -- [command]

从在 pod 中的特定容器上运行的命令获取输出:

kubectl exec [pod-name] -c [container-name] -- [command]

从特定的 pod运行/bin/bash 。接收到的输出来自第一个容器:

kubectl exec -ti [pod-name] -- /bin/bash

5、守护进程

列出一个或多个守护程序集

kubectl get daemonset

编辑和更新一个或多个守护程序集的定义

kubectl edit daemonset <daemonset_name>

删除守护程序集

kubectl delete daemonset <daemonset_name>

创建一个新的守护进程

kubectl create daemonset <daemonset_name>

管理守护程序集的推出

kubectl rollout daemonset

显示命名空间中守护程序集的详细状态

kubectl describe ds <daemonset_name> -n <namespace_name

8、打印容器日志

打印 pod 的日志

kubectl logs <pod_name>

打印 pod 上一小时的日志

kubectl logs --since=1h <pod_name>

获取最近的 20 行日志

kubectl logs --tail=20 <pod_name>

从服务获取日志并可选择选择哪个容器

kubectl logs -f <service_name> [-c <$container>]

打印 pod 的日志并关注新日志

kubectl logs -f <pod_name>

打印 pod 中容器的日志

kubectl logs -c <container_name> <pod_name>

将 pod 的日志输出到名为“pod.log”的文件中

kubectl logs <pod_name> pod.log

查看以前失败的 pod 的日志

kubectl logs --previous <pod_name>

获取所有以 pod_prefix 命名的 pod 的日志

kubetail <pod_prefix>

包括最近 5 分钟的日志

kubetail <pod_prefix> -s 5m

11、其他命令

文档

获取 pod 清单的文档

kubectl explain pod

获取服务清单的文档

kubectl explain service
别名

在 linux 上创建别名

alias k=kubectl

在 Windows 上创建别名

Set-Alias -Name k -Value kubectl
节点

获取节点

kubectl get nodes

获取特定节点

kubectl get nodes <node>

显示节点指标

kubectl top node <node>
服务帐号

列出服务帐号

kubectl get serviceaccounts

获取服务帐号

kubectl get serviceaccount <serviceaccount>

创建服务帐号

kubectl create serviceaccount <serviceaccount>

删除服务帐号

kubectl delete serviceaccount <serviceaccount>

描述服务帐号

kubectl describe serviceaccount <serviceaccount>

10、格式化输出

如果想要以特定格式将详细信息输出到终端窗口,可以在K8S命令中加上-o参数。

使用逗号分隔的自定义列列表打印表格

-o=custom-columns=<spec>

使用文件中的自定义列模板打印表格

-o=custom-columns-file=<filename><filename>

输出 JSON 格式的 API 对象

-o=json

打印jsonpath表达式中定义的字段

-o=jsonpath=<template>

打印文件中jsonpath表达式定义的字段<filename>

-o=jsonpath-file=<filename>

仅打印资源名称,不打印其他内容

-o=name

以纯文本格式输出任何附加信息,对于 pod,包括节点名称

-o=wide

输出 YAML 格式的 API 对象

-o=yaml

以上就是K8S的命令列表,下面给大家列举一下高频使用的命令,希望大家能够牢记!!!

K8S高频使用的命令

1、列出所有命名空间服务

查看当前命名空间中所有服务的列表:

kubectl get services

查看所有命名空间中的服务列表:

kubectl get pods --all-namespaces
2、检索节点上的详细信息

查看节点的整体状态:

kubectl get nodes
3、创建一个具有唯一名称的新命名空间

创建一个新的命名空间:

kubectl create ns hello-there
4、利用文件来配置 Kubernetes

利用配置文件并更改资源:

kubectl apply -f config.yaml
5、列出命名空间中所有正在运行的 pod
kubectl get pods --field-selector=status.phase=Running
6、集群服务

显示集群主节点和服务的端点信息:

kubectl cluster-info
7、服务日志 ⭐
kubectl logs -f <service_name>
8、密钥

获取所有 Kubernetes 密钥的列表:

kubectl get secrets
9、事件

查看所有基于资源的事件的列表:

kubectl get events
10、创建新的 DaemonSet
kubectl create daemonset <daemonset_name>

总结

K8S在容器技术盛行的时代已经称为标配技术,本文瑞哥开始给大家介绍了K8S的基本知识,然后列举了K8S的命令列表,最后还给大家提炼出高频使用的命令,希望本文能够给您带来帮助。

最后感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞👍、收藏⭐哦!有任何问题,欢迎在下方评论区与我讨论!!!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。