当前位置: 首页 > news >正文

【云原生】K8s管理工具--Kubectl详解(一)

一、陈述式管理

1.1、陈述式资源管理方法

  1. kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口
  2. kubectl 是官方的 CLI 命令行工具,用于与 apiserver 进行通信,将用户在命令行输入的命令,组织并转化为apiserver 能识别的信息,进而实现管理 k8s 各种资源的一种有效途径
  3. kubectl 的命令大全
  4. kubectl --help
  5. k8s官方中文文档:http://docs.kubernetes.org.cn/683.html
  6. 对资源的增、删、查操作比较容易,但对改的操作就不容易了

二、K8S相关信息查看

2.1 查看版本信息

kubectl version

2.2 查看节点信息

kubectl get nodes

2.3 查看资料对象简写

kubectl api-resources

2.4 查看集群信息

kubectl cluster-info

2.5 配置kubectl自动补全

source <(kubectl completion bash)

可通过TAB键实现命令补全,建议将其写入 /etc/profile或是~/.bashrc

2.6 查看日志

journalctl -u kubelet -f

三、 查看基本信息

##命令格式:
kubectl get [-o wide|json|yaml] [-n namespace]

获取资源的相关信息,-n指定命名空间,-o指定输出格式
resource可以是具体资源名称,如"pod nhinx-xxx";也可以是资源类型,如“pod,node,svc,deploy”多种资源使用逗号间隔;或者all(仅展示几种核心资源,并不完整)

  1. –all-namespaces或-A:表示显示所有命名空间
  2. –show-labels:显示所有标签
  3. -l app:仅显示标签为app的资源
  4. -l app=nginx:仅显示包含app标签,且值为nginx的资源

3.1、 查看master节点状态

kubectl get componentstatuses#componentstatues可以缩写成cs
kubectl get cs

3.2、 查看命名空间

kubectl get namespace#namespace可以缩写成ns
kubectl get ns

获取所有命名空间中的 Pod 列表

kubectl get pod --all-namespaces
kubectl get pod -A#获取所有命名空间中的 Pod 列表

3.3、 查看default命名空间的所有资源

kubectl get all [-n default]

由于deafult为缺省空间,当不指定命名空间时默认查看default命名空间

3.4、创建命名空间

kubectl create ns lyhdb
kubectl get ns

同一命名空间不能有相同的名字,不同命名空间可以有相同的名字

3.5、删除命名空间

kubectl delete namespaces lyhdb
kubectl get ns

可以删除,但是如果这个命名空间下面有资源,资源就都会被删除,再三考虑哦

3.6、在命名空间kube-public 创建副本控制器(deployment)来启动Pod(nginx-ab)

 kubectl create deployment nginx-ab --image=nginx -n kube-public#这个命令 kubectl create deployment nginx-ab --image=nginx -n kube-public 用于在命名空间 kube-public 中创建一个名为 nginx-ab 的 Deployment,并使用 nginx 镜像作为 Deployment 中的容器。kubectl:Kubernetes 命令行工具,用于与 Kubernetes 集群进行交互。
create deployment nginx-ab:创建一个名为 nginx-ab 的 Deployment。
--image=nginx:指定 Deployment 中要使用的容器镜像为 nginx。
-n kube-public:指定要将 Deployment 创建在 kube-public 命名空间中。

kubectl create <pod控制器名> <pod名称> --image=镜像名

                          Deployment:无状态应用部署

                          Statefulset:有状态应用部署

                          Replicaset:副本数量控制器

                          Daemonset:确保所有节点运行同一类 Pod

                          Cronjob:计划性任务

示例二

用kubectl create 创建

用于创建deployment 控制器管理的pod

 用run直接创建

run:用于创建一个自主式/静态 Pod

[root@master01 ~]#kubectl run qqq --image=nginx -n kube-public   ##创建qqq
[root@master01 ~]#kubectl  get pod -n kube-public
[root@master01 ~]#kubectl delete pod qqq -n kube-public          ##删除qqq
[root@master01 ~]#kubectl get pod -n kube-public

3.7、描述某个资源的详细信息

kubectl describe deployment nginx-ab -n kube-publickubectl describe pod nginx-aa-66b8d4497f-cdj44 -n kube-public

3.8、查看命名空间kube-public中的pod信息

kubectl get pods -n kube-public

3.9、kubectl exec可以跨主机登录容器,docker exec 只能在容器所在主机上登录

[root@master01 ~]#kubectl exec -it nginx-ab-5f7467856-69mtq bash -n kube-public

示例二

[root@master01 ~]#kubectl  get pods -n kube-public
[root@master01 ~]#kubectl exec -it nginx-abc-64d49d89f5-lf8vc  bash -n kube-public

kubectl get pods -n kube-public -owide#用于获取在 kube-public 命名空间中运行的所有 Pods 的详细信息,包括它们的名称、状态、IP 地址等。 -n kube-public 参数指定了命名空间为 kube-public,而 -owide 参数指定了输出的格式为 wide,这样可以显示更多的列。#将会列出在 kube-public 命名空间中运行的所有 Pods,并显示它们的详细信息。

3.10、删除(重启)pod资源,由于存在deployment/rc之类的副本控制器,删除pod也会重新拉起来

kubectl delete pod nginx-ab-5f7467856-69mtq -n kube-public

若pod无法删除,总是处于terminate状态,则要强行删除pod

kubectl delete pod <pod-name> -n <namespace> --force --grace-period=0
#grace-period表示过渡存活期,默认30s,在删除pod之前允许POD慢慢终止其上的容器进程,从而优雅退出,0表示立即终止pod

3.11、扩缩容

​kubectl scale deployment nginx-bb --replicas=5 -n kube-public   # 扩容kubectl scale deployment nginx-bb --replicas=2 -n kube-public   # 缩容kubectl  scale pod控制器类型 资源名称 --replicas=副本数  -n 命名空间
##副本数决定扩容还是缩容

3.11.1 扩容

kubectl create deployment nginx-qw --image=nginx -n kube-public
kubectl get pods -n kube-public
kubectl scale  deployment nginx-qw  --replicas=5 -n kube-public      ##扩容5个副本

3.11.2缩容

##在扩容的基础上进行缩容
kubectl  scale  deployment nginx-qw --replicas=2 -n kube-public

3.12、删除副本控制器

kubectl get pods -n kube-public
kubectl delete deployments nginx-qw -n kube-public

kubectl get pods -n kube-public
kubectl delete deployment/nginx-ab -n kube-public
kubectl delete deployment/nginx-abc -n kube-public
kubectl delete deployment/abc -n kube-public
kubectl get pods -n kube-public

3.13、查看标签

kubectl get pod --show-labels  #查看所有资源的标签
kubectl get pod -l app         #指定标签的键查看,只显示标签为app的资源
kubectl get pod -l app -A
kubectl get pod -l app=nginx-deployment #显示包含app标签且值为nginx的资源

kubectl get pod -l app=nginx-deployment
kubectl get pod -l app=nginx-deployment -A

相关文章:

【云原生】K8s管理工具--Kubectl详解(一)

一、陈述式管理 1.1、陈述式资源管理方法 kubernetes 集群管理集群资源的唯一入口是通过相应的方法调用 apiserver 的接口kubectl 是官方的 CLI 命令行工具&#xff0c;用于与 apiserver 进行通信&#xff0c;将用户在命令行输入的命令&#xff0c;组织并转化为apiserver 能识…...

2024.5.26.python.exercise

# # 导入包 # from pyecharts.charts import Bar, Timeline # from pyecharts.options import LabelOpts, TitleOpts # from pyecharts.globals import ThemeType # # # 从文件中读取信息 # GDP_file open("1960-2019全球GDP数据.csv", "r", encoding&quo…...

代码随想录-Day20

654. 最大二叉树 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums…...

揭秘C++ String容器:字符串操作的艺术

目录 ​编辑 引言 一、初识std::string&#xff1a;构造与初始化 二、字符串的操纵艺术&#xff1a;拼接、查找与替换 三、访问与遍历&#xff1a;字符的细腻触感 四、大小与容量&#xff1a;动态调整的智慧 五、进阶功能&#xff1a;探索更多可能 结语 引言 在C标准库…...

【C++】牛客 ——DP36 abb

✨题目链接&#xff1a; DP36 abb ✨题目描述 leafee 最近爱上了 abb 型语句&#xff0c;比如“叠词词”、“恶心心” leafee 拿到了一个只含有小写字母的字符串&#xff0c;她想知道有多少个 "abb" 型的子序列&#xff1f; 定义&#xff1a; abb 型字符串满足以下…...

SpringBoot如何实现跨域?

定义一个配置类&#xff0c;实现WebMvcConfigurer接口&#xff0c;重写addCorsMappings方法 Configuration public class CorsConfig implements WebMvcConfigurer {Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allow…...

SW 草图偏移 先预选

因为有些不能用链全部选,可以先框选要偏移的,再点偏移命令...

5.23 Linux中超时检测方式+模拟面试

1.IO多路复用的原理&#xff1f; IO多路复用使得一个或少量线程资源处理多个连接的IO事件的技术。对于要处理的多个阻塞的IO操作&#xff0c;建立集合并存储它们的文件描述符&#xff0c;利用单个阻塞函数去监控集合中文件描述符事件到达的情况&#xff0c;&#xff08;如果到…...

MySQL数据表索引命名规范

在数据库设计和开发过程中&#xff0c;索引是提高查询性能的重要工具。合理的索引命名规范不仅能提高代码的可读性&#xff0c;还能便于维护和管理。本文将详细介绍MySQL数据表索引的命名规范&#xff0c;包括不同类型索引的命名方法&#xff0c;并提供多个代码示例以说明如何命…...

python内置函数map/filter/reduce详解

在Python中&#xff0c;map(), filter(), 和 reduce() 是内置的高级函数(实际是class)&#xff0c;用于处理可迭代对象&#xff08;如列表、元组等&#xff09;的元素。这些函数通常与lambda函数一起使用&#xff0c;以简洁地表达常见的操作。下面我将分别解释这三个函数。 1. …...

PICO VR眼镜定制播放器使用说明文档videoplayerlib-ToB.apk

安装高级定制播放器 高级定制播放器下载地址:https://download.csdn.net/download/ahphong/89360454 仅限用于PICO G2、G3、G4、NEO系列VR眼镜上使用, 用途:用于第三方APP(开发者)调用定制播放器播放2D、3D、180、360全景视频。 VR眼镜系统请升级到最新版,可在官网下载,…...

基于51单片机的超声波液位测量与控制系统

基于51单片机液位控制器 &#xff08;仿真&#xff0b;程序&#xff0b;原理图PCB&#xff0b;设计报告&#xff09; 功能介绍 具体功能&#xff1a; 1.使用HC-SR04测量液位&#xff0c;LCD1602显示&#xff1b; 2.当水位高于设定上限的时候&#xff0c;对应声光报警报警&am…...

详细分析Element中的MessageBox基本知识(附Demo)

目录 前言1. 基本知识2. Demo2.1 确认框2.2 警告框2.3 对话框 3. this.$confirm 前言 详细知识推荐阅读&#xff1a;详细分析Element Plus中的ElMessageBox弹窗用法&#xff08;附Demo及模版&#xff09; MessageBox则常用于Vue2 1. 基本知识 MessageBox 是 Element UI 提供…...

音视频开发8 音视频中SDL的使用,SDL 在windows上环境搭建,SDL 使用 以及 常用 API说明,show YUV and play PCM

1.SDL简介 SDL&#xff08;Simple DirectMedia Layer&#xff09;&#xff0c;是一个跨平台的C语言多媒体开发库。 支持Windows、Mac OS X、Linux、iOS、Android 提供对音频、键盘、鼠标、游戏操纵杆、图形硬件的底层访问 很多的视频播放软件、模拟器、受欢迎的游戏都在使用…...

P1003 [NOIP2011 提高组] 铺地毯

题目传送门&#xff1a; P1003 [NOIP2011 提高组] 铺地毯 AC代码&#xff1a; #include<bits/stdc.h>using namespace std;int a[10005],b[10005],g[10005],k[10004];int main() {int n,x,y;cin>>n;for(int i1;i<n;i) cin>>a[i]>>b[i]>>g[…...

C语言学习笔记之指针(一)

目录 什么是指针&#xff1f; 指针和指针类型 指针的类型 指针类型的意义 指针-整数 指针的解引用 指针 - 指针 指针的关系运算 野指针 什么是野指针&#xff1f; 野指针的成因 如何规避野指针&#xff1f; 二级指针 什么是指针&#xff1f; 在介绍指针之前&#…...

化学中的不确定性。

化学中的不确定性TOC 基于元素分析的无机化学的理论大厦应该说早已落成了&#xff0c;但是却仍然存在着一些列的难解甚至是无解问题&#xff0c;这些大多是在使用理论解释现象时遇到的困难&#xff0c;有些则是在生产实践中生产工艺和生产工序设计和优化中发现的问题。于是&…...

AWS容器之Fargate

AWS Fargate是亚马逊提供的一种容器管理服务&#xff0c;它允许开发人员在AWS云中轻松运行容器化应用程序&#xff0c;而无需管理底层的服务器基础架构。Fargate可以自动管理容器的部署、扩展和负载平衡&#xff0c;并提供了与ECS和EKS等AWS容器服务集成的能力。适用于容器的无…...

C#面:DataReader与Dataset有什么区别

C#中的DataReader和DataSet都是用于处理数据的类&#xff0c;但它们有一些区别。 DataReader是一种轻量级的只进只读数据流&#xff0c;用于从数据库中检索数据。它是一种快速且高效的数据访问方式&#xff0c;适用于大量数据的读取。DataReader一次只能读取一行数据&#xff…...

操作系统课程实验1-进程调度模拟实验

操作系统课程实验1-进程调度模拟实验 一、实验介绍 1.1 实验目的 本实验模拟在单处理机环境下的处理机调度&#xff0c;帮助理解进程调度的概念&#xff0c;深入了解进程控制块的功能&#xff0c;以及进程的创建、撤销和进程各个状态间的转换过程。 1.2 实验内容 进程调度算…...

zookeeper 常用命令之zkCli

简介&#xff1a;介绍zkCli客户端非常常用的命令 zkCli.sh 不填后面的参数&#xff0c;默认连接的就是localhost:2181zk节点类似Linux的目录&#xff0c;比如/uar/local&#xff0c;-s表示持久的节点&#xff0c;-e是临时的节点。data是往这个节点里面放入哪些数据&#xff0c…...

Testsigma自动化测试平台深度解析:AI协同测试架构设计与实践指南

Testsigma自动化测试平台深度解析&#xff1a;AI协同测试架构设计与实践指南 【免费下载链接】testsigma Testsigma is an agentic test automation platform powered by AI-coworkers that work alongside QA teams to simplify testing, accelerate releases and improve qua…...

GLM-OCR模型开箱即用体验:CSDN星图GPU平台一键部署

GLM-OCR模型开箱即用体验&#xff1a;CSDN星图GPU平台一键部署 最近在做一个需要批量处理图片文字识别的项目&#xff0c;传统的手动部署OCR模型&#xff0c;光是配环境、装依赖、解决版本冲突就能耗掉大半天&#xff0c;更别提还得自己搞定GPU驱动和显存分配了。正当我为此头…...

goqu性能优化实战:10个提升查询效率的关键技巧

goqu性能优化实战&#xff1a;10个提升查询效率的关键技巧 【免费下载链接】goqu SQL builder and query library for golang 项目地址: https://gitcode.com/gh_mirrors/go/goqu goqu是一款强大的Golang SQL构建和查询库&#xff0c;能够帮助开发者高效地构建和执行SQL…...

[特殊字符] 第72课:杨辉三角

想系统提升编程能力、查看更完整的学习路线&#xff0c;欢迎访问 AI Compass&#xff1a;https://github.com/tingaicompass/AI-Compass 仓库持续更新刷题题解、Python 基础和 AI 实战内容&#xff0c;适合想高效进阶的你。&#x1f4d6; 第72课:杨辉三角模块:动态规划 | 难度:…...

如何将Sublime Text打造成Python开发利器:Anaconda插件终极指南

如何将Sublime Text打造成Python开发利器&#xff1a;Anaconda插件终极指南 【免费下载链接】anaconda Anaconda turns your Sublime Text 3 in a full featured Python development IDE including autocompletion, code linting, IDE features, autopep8 formating, McCabe co…...

Go 限流器性能优化终极指南:避免缓存伪共享的 padding 策略

Go 限流器性能优化终极指南&#xff1a;避免缓存伪共享的 padding 策略 【免费下载链接】ratelimit A Go blocking leaky-bucket rate limit implementation 项目地址: https://gitcode.com/gh_mirrors/ra/ratelimit 在 Go 高性能限流器开发中&#xff0c;go.uber.org/r…...

Braft Editor图片处理优化:拖拽调整大小与等比例缩放的终极指南

Braft Editor图片处理优化&#xff1a;拖拽调整大小与等比例缩放的终极指南 【免费下载链接】braft-editor 美观易用的React富文本编辑器&#xff0c;基于draft-js开发 项目地址: https://gitcode.com/gh_mirrors/br/braft-editor Braft Editor是一款基于React和Draft.j…...

禾赛科技Linux BSP工程师面试技术要点解析

1. 禾赛科技高级Linux BSP工程师面试全解析最近参加了禾赛科技高级Linux BSP软件工程师的社招面试&#xff0c;整体感觉技术考察非常全面深入。作为一家专注激光雷达研发的科技公司&#xff0c;他们对底层系统开发能力的要求极高。下面我就把两轮技术面试中遇到的真实问题及技术…...

紧急预警:2025年起欧盟UNECE R155强制要求车载C#代码具备可追溯性!3天内完成全链路TraceID植入的终极脚手架

第一章&#xff1a;UNECE R155合规性对车载C#中控系统的核心影响UNECE R155法规要求汽车制造商及关键零部件供应商建立并持续运行功能安全与网络安全管理体系&#xff08;CSMS&#xff09;&#xff0c;这对基于.NET Framework/.NET 6构建的C#车载中控系统提出了结构性约束。中控…...