开发者社区> wljslmz> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: 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的命令列表,最后还给大家提炼出高频使用的命令,希望本文能够给您带来帮助。

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
OpenGL ES 能导入的3dmax导出的模型格式对比
OpenGL ES 能导入的3dmax导出的模型格式对比 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
1049 0
闲聊桌面应用开发[Win16->Win32->ATL/WTL/MFC->WinForm->WPF/Silverlight/WinRT]
闲来无聊,正好小组人员讨论到桌面的开发,那把笔者接触的WIndows平台下的几个主要的发展过程聊一聊。 主要从概述,参考资料,图书等几个方面说起。 所有的界面开发都会涉及如下的几个方面的内容: v 控件 [Contrrols Widget]及验证 v 绑定:数据绑定到控件和控件的内容反馈回数据 v 布局系统: v 模式和支撑:和服务的通讯,MVC MVP MVVM等模式 史前期->WIN16 这个主要是Windows3.x的时代,这个时代笔者接触的不是很多,当年也主要是使用体验了。
1101 0
+关注
wljslmz
公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com
81
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载