『运维备忘录』之 Kubernetes(K8S) 常用命令速查

一、简介

kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写,是一个开源的,用于管理云平台中多个主机上的容器化的应用。kubernetes是基于容器技术的分布式架构解决方案,具有完备的集群管理能力,包括多层次的安全防护和准入机制,多租户应用支持能力,透明的服务注册和服务发现机制,内建智能负载均衡器,强大的故障发现和自我修复能力,服务滚动升级和在线扩容能力,可拓展的资源自动调度机制,以及多粒度的资源配额管理能力。同时,K8s提供了完善的管理工具,这些工具涵盖了包括开发,部署测试,运维监控在内的各个环节。K8s的目标是让部署容器化的应用简单并且高效,它提供了应用部署、规划、更新、维护的一种机制。

K8s中的大部分概念如Node、Pod、ReplicationController、Service等都可以看作一种“资源对象”,几乎所有的资源对象都可以通过K8s提供的kubectl工具执行增、删、改、查等操作井将其保存在etcd中持久化存储。这篇文章就整理了常用的kubectl命令供大家参考。

二、通过kubectl查看资源信息

2.1. 节点(资源名称: nodes, 缩写: no)

$ kubectl get no          # 显示所有节点信息
$ kubectl get no -o wide  # 显示所有节点的更多信息
$ kubectl describe no     # 显示节点详情
$ kubectl get no -o yaml  # 以yaml格式,显示节点详情
$ kubectl get node --selector=[label_name] # 筛选指定标签的节点
$ kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}' # 输出jsonpath表达式定义的字段信息
$ kubectl top node [node_name] # 显示节点(CPU/内存/存储)使用情况

2.2. 容器组(资源名称: pods, 缩写: po)

$ kubectl get po         # 显示所有容器组信息
$ kubectl get po -o wide
$ kubectl describe po
$ kubectl get po --show-labels   # 查看容器组的labels
$ kubectl get po -l app=nginx
$ kubectl get po -o yaml
$ kubectl get pod [pod_name] -o yaml --export
$ kubectl get pod [pod_name] -o yaml --export > nameoffile.yaml   # 以yaml格式导出容器组信息到yaml文件
$ kubectl get pods --field-selector status.phase=Running    # 使用字段选择器筛选出容器组信息

2.3. 命名空间(资源名称: namespaces, 缩写: ns)

$ kubectl get ns
$ kubectl get ns -o yaml
$ kubectl describe ns

2.4. 无状态应用(资源名称: deployments, 缩写: deploy)

$ kubectl get deploy
$ kubectl describe deploy
$ kubectl get deploy -o wide 
$ kubectl get deploy -o yaml

2.5. 服务(资源名称: services, 缩写: svc)

$ kubectl get svc
$ kubectl describe svc
$ kubectl get svc -o wide 
$ kubectl get svc -o yaml
$ kubectl get svc --show-labels

2.6. 守护进程(资源名称: daemonsets, 缩写: ds)

$ kubectl get ds
$ kubectl describe ds --all-namespaces
$ kubectl describe ds [daemonset_name] -n [namespace_name]
$ kubectl get ds [ds_name] -n [ns_name] -o yaml

2.7. 事件(资源名称: events, 缩写: ev)

$ kubectl get events 
$ kubectl get events -n kube-system
$ kubectl get events -w

2.8. 日志

$ kubectl logs [pod_name]
$ kubectl logs --since=1h [pod_name]
$ kubectl logs --tail=20 [pod_name]
$ kubectl logs -f -c [container_name] [pod_name]
$ kubectl logs [pod_name] > pod.log

2.9. 服务帐户(资源名称: serviceaccounts, 缩写: sa)

$ kubectl get sa
$ kubectl get sa -o yaml
$ kubectl get serviceaccounts default -o yaml >./sa.yaml
$ kubectl replace serviceaccount default -f ./sa.yaml

2.10. 角色

$ kubectl get roles --all-namespaces
$ kubectl get roles --all-namespaces -o yaml

2.11. 配置项(资源名称: configmaps, 缩写: cm)

$ kubectl get cm
$ kubectl get cm --all-namespaces
$ kubectl get cm --all-namespaces -o yaml

2.12. 路由(资源名称: ingresses, 缩写: ing)

$ kubectl get ing
$ kubectl get ing --all-namespaces

2.13. 副本集(资源名称: replicasets, 缩写: rs)

$ kubectl get rs
$ kubectl describe rs
$ kubectl get rs -o wide 
$ kubectl get rs -o yaml

三、通过kubectl变更资源属性

# 标签变更
$ kubectl label nodes <node-name> <label-key>=<label-value>  #增加
$ kubectl label nodes <node-name> <label-key>- #删除
$ kubectl label nodes <node-name> <label-key>=<label-value> --overwrite #修改# 维护/可调度
$ kubectl cordon [node_name]   # 节点维护
$ kubectl uncordon [node_name] # 节点可调度# 节点/容器组变更
$ kubectl delete node [node_name] 
$ kubectl delete pod [pod_name]
$ kubectl edit node [node_name]
$ kubectl edit pod [pod_name]
$ kubectl drain [node_name]    # 清空节点# 无状态/命名空间变更
$ kubectl edit deploy [deploy_name]
$ kubectl delete deploy [deploy_name]
$ kubectl expose deploy [deploy_name] --port=80 --type=NodePort
$ kubectl scale deploy [deploy_name] --replicas=5
$ kubectl delete ns
$ kubectl edit ns [ns_name]# 服务变更
$ kubectl edit svc [svc_name]
$ kubectl delete svc [svc_name]# 守护进程变更
$ kubectl edit ds [ds_name] -n kube-system 
$ kubectl delete ds [ds_name]# 注释
$ kubectl annotatepo [pod_name] [annotation]
$ kubectl annotateno [node_name]

四、通过kubectl添加资源

4.1. 创建容器

$ kubectl create -f [name_of_file] 
$ kubectl apply -f [name_of_file]
$ kubectl run [pod_name] --image=nginx --restart=Never
$ kubectl run [pod_name] --generator=run-pod/v1 --image=nginx
$ kubectl run [pod_name] --image=nginx --restart=Never

4.2. 创建服务

$ kubectl create svc nodeport [svc_name] --tcp=8080:80

4.3. 创建无状态应用

$ kubectl create -f [name_of_file] 
$ kubectl apply -f [name_of_file]
$ kubectl create deploy [deploy_name] --image=nginx

4.4. 输出YAML文件

$ kubectl create deploy [deploy_name] --image=nginx --dry-run -o yaml > deploy.yaml
$ kubectl get po [pod_name] -o yaml --export > pod.yaml
$ kubectl run nginx --image=nginx:alpine --dry-run -o -yaml > deploy.yaml

五、其他命令

# 获取帮助
$ kubectl -h
$ kubectl create -h
$ kubectl run -h
$ kubectl explain deploy.spec# API调用
$ kubectl get --raw /apis/metrics.k8s.io/# 获取集群信息
$ kubectl config
$ kubectl cluster-info
$ kubectl get componentstatus

参考资料:https://kubernetes.io/zh-cn/docs/reference/kubectl/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2774319.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

霍金《时间简史》(A Brief History of Time)学习笔记(第四章)

Chapter 4: The Uncertainty Principle Footnote: Chapter 4. Mainly talks about Werner Heisenberg’s Uncertainty Principle. Vital principle in modern physics, concept not hard to understand——work of a genius mind. Footnote: Werner Heisenberg, German physici…

【蓝桥杯冲冲冲】Invasion of the Milkweed G

【蓝桥杯冲冲冲】Invasion of the Milkweed G 蓝桥杯备赛 | 洛谷做题打卡day30 文章目录 蓝桥杯备赛 | 洛谷做题打卡day30[USACO09OCT] Invasion of the Milkweed G题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 题解代码我的一些话 [USACO09OCT] Invasion of the Mi…

斯巴鲁Subaru EDI需求分析

斯巴鲁Subaru是日本运输集团斯巴鲁公司&#xff08;前身为富士重工&#xff09;的汽车制造部门&#xff0c;以性能而闻名&#xff0c;曾赢得 3 次世界拉力锦标赛和 10 次澳大利亚拉力锦标赛。 斯巴鲁Subaru EDI 需求分析 企业与斯巴鲁Subaru建立EDI连接&#xff0c;首先需要确…

洛谷C++简单题小练习day9—[AHOI2017]寻找探监点

day9--[AHOI2017]寻找探监点--2.7 习题概述 题目描述 一个nn 的网格图&#xff08;标号由 1,1 开始&#xff09;上有 m 个探测器&#xff0c;每个探测器有个探测半径 r &#xff0c;问这 nn 个点中有多少个点能被探测到。 输入格式 第一行 3 个整数 n,m,r。 接下来 m 行&…

解决dockor安装nginx提示missing signature key的问题

问题描述 使用dockor安装nginx拉取nginx的时候提示key丢失问题 问题定位 由于dockor版本低导致 问题解决 卸载重新安装最新版本dockor 解决步骤 1. 卸载旧版本的Docker&#xff1a; sudo yum remove docker docker-common docker-selinux docker-engine 2. 安装依赖包&am…

Ubuntu安装SVN服务并结合内网穿透实现公网访问本地存储文件

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&…

线性时间非比较类排序之桶排序

桶排序 桶排序也叫箱排序&#xff0c;1956年便开始使用&#xff0c;它可以算是计数排序的一个改进版本。 1. 算法思想 根据元素的特性将集合拆分为多个值域&#xff0c;我们称之为桶&#xff0c;将同一值域的元素存放在同一个桶内并进行桶内排序使其处于有序状态。如果每个桶…

华为 Huawei 交换机 黑洞MAC地址的作用和配置示例

黑洞mac作用&#xff1a;某交换机上配置某个PC的mac地址为黑洞mac&#xff0c;那么这台PC发出来的包都会被交换机丢弃&#xff0c;不会被转发到网络中。 组网需求&#xff1a; 如 图 2-13 所示&#xff0c;交换机 Switch 收到一个非法用户的访问&#xff0c;非法用户的 MAC 地址…

Docker容器监控-CIG

目录 一、CIG说明 1. CAdvisor 2. InfluxDB 3. Grafana 二、环境搭建 1. 创建目录 2. 编写 docker-compose.yml 3. 检查并运行容器 三、进行测试 1. 查看 influxdb 存储服务 是否能正常访问 2. 查看 cAdvisor 收集服务能否正常访问 3. 查看 grafana 展现服务&#…

Java毕业设计-基于springboot的网上书店管理系统-第75期

获取源码资料&#xff0c;请移步从戎源码网&#xff1a;从戎源码网_专业的计算机毕业设计网站 项目介绍 基于springboot的网上书店管理系统&#xff1a;前端thymeleaf、js、layui&#xff0c;后端 maven、springmvc、spring、mybatis&#xff0c;集成书籍管理、分类管理、订单…

Windows 安装 MySQL 最新最简教程

Windows 安装 MySQL 最新最简教程 官网地址 https://dev.mysql.com/downloads/mysql/下载 MySQL zip 文件 配置 MySQL1、解压文件 2、进入 bin 目录 搜索栏输入 cmd 回车进入命令行 C:\Users\zhong\Desktop\MySQL\mysql-8.3.0-winx64\mysql-8.3.0-winx64\bin 注意这里是你自己…

Java学习网络编程

Java学习网络编程 大纲 网络相关概念IP地址网络协议InetAdressSocket 具体案例 1. 网络相关概念 网络 网络通信 2. IP地址 域名 3.网络协议 4. InetAdress 获得本机的名字和IP public static void main(String[] args) throws UnknownHostException {InetAddress inetA…

【数据分享】1929-2023年全球站点的逐年平均风速(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 有关气象指标的监测站点数据&#xff0c;之前我们分享过1929-2023年全球气象站…

platform tree架构下i2c应用实例(HS3003)

目录 概述 1 探究platform tree下的i2c 1.1 platform tree下的i2c驱动 1.2 查看i2c总线下的设备 1.3 使用命令读写设备寄存器 2 认识HS3003 2.1 HS3003特性 2.2 HS3003寄存器 2.2.1 温湿度数据寄存器 2.2.2 参数寄存器 2.2.3 一个参数配置Demo 2.3 温湿度值转换 2.…

移动端设置position: fixed;固定定位,底部出现一条缝隙,不知原因,欢迎探讨!!!

1、问题 在父盒子中有一个子盒子&#xff0c;父盒子加了固定定位&#xff0c;需要子盒子上下都有要边距&#xff0c;用margin或者padding挤开时&#xff0c;会出现缝隙是子盒子背景颜色的。 测试过了&#xff0c;有些手机型号有&#xff0c;有些没有&#xff0c;微信小程序同移…

LeetCode 0993. 二叉树的堂兄弟节点:深度优先搜索(BFS)

【LetMeFly】993.二叉树的堂兄弟节点&#xff1a;深度优先搜索(BFS) 力扣题目链接&#xff1a;https://leetcode.cn/problems/cousins-in-binary-tree/ 在二叉树中&#xff0c;根节点位于深度 0 处&#xff0c;每个深度为 k 的节点的子节点位于深度 k1 处。 如果二叉树的两个…

java_error_in_pycharm.hprof文件是什么?能删除吗?

java_error_in_pycharm.hprof文件是什么&#xff1f;能删除吗&#xff1f; &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;hprof格式文件介绍&#x1f333;&#x1f333;java_error_in_pycharm.hprof文件什么情况下能删除&#x1f333;&…

【Nicn的刷题日常】之有序序列合并

1.题目描述 描述 输入两个升序排列的序列&#xff0c;将两个序列合并为一个有序序列并输出。 数据范围&#xff1a; 1≤&#xfffd;,&#xfffd;≤1000 1≤n,m≤1000 &#xff0c; 序列中的值满足 0≤&#xfffd;&#xfffd;&#xfffd;≤30000 0≤val≤30000 输入描述…

Java 将TXT文本文件转换为PDF文件

与TXT文本文件&#xff0c;PDF文件更加专业也更适合传输&#xff0c;常用于正式报告、简历、合同等场合。项目中如果有使用Java将TXT文本文件转为PDF文件的需求&#xff0c;可以查看本文中介绍的免费实现方法。 免费Java PDF库 本文介绍的方法需要用到Free Spire.PDF for Java…

波卡 2023 四季度报告:开发者数量位列加密生态前三,五项新技术将于今年发布

作者&#xff1a;Nicholas Garcia&#xff5c;Messari 研究分析师 编译&#xff1a;OneBlock 原文&#xff1a;https://messari.io/report/state-of-polkadot-q4-2023?utm_mediumorganic_social&utm_sourcetwitter_messari&utm_campaignstate_of_polkadot_q4_2023 …