人手一套的 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 的命令列表,最后还给大家提炼出高频使用的命令,希望本文能够给您带来帮助。
最后感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞👍、收藏⭐哦!有任何问题,欢迎在下方评论区与我讨论!!!
本文文字及图片出自 InfoQ
你也许感兴趣的:
- 【外评】为什么以及何时需要使用 Kubernetes?
- 【译文】用 Kubernetes 值得吗?
- Kubernetes 开源9年,但我们已经有了 8 年的踩坑血泪史
- 为什么大型工程团队要在 Kubernetes 上进行测试?
- Kubernetes 真的很难吗?
- WebAssembly 真能取代 Kubernetes?
- 是否应该在 Kubernetes 上运行数据库?
- Kubernetes 之父:他们现在在哪里?
- 必看:Kubernetes 开发环境对比
- 既然有了Docker, 为什么还要Kubernetes ?
你对本文的反应是: