kubectl 命令详细介绍

目录

一,k8s集群资源管理方式分类

1,陈述式命令(命令式对象管理)

2, 陈述式对象配置(命令式对象配置)

3, 声明式对象配置(声明式对象配置)

二 ,   kubectl命令语法

三    查看基本信息

(一)环境指令

1,查看版本信息

2,查看资源对象简写

3,  添加补全信息 

4,   node节点查看日志

5,  查看集群信息

6, 查看服务端点(endpoints)信息

(二)查看资源信息

1,  获取资源相关信息 

2, 查看集群组件状态

3,  查看命名空间 

4    查看命名空间中的资源

5, 查看资源详细信息

(三) 标签

1,标签的作用

2,标签的特点

3,标签操作演示

3.1 查看存在资源的标签

3.2 查看指定标签中含有的资源

3.3 查看标签中指定的资源

三、创建和删除资源 

1.创建命名空间

2,创建pod实例

2.1 使用run创建 

2.2 使用create创建

3,  删除资源

3.1 删除pod

3.2 删除命名空间 

四, 扩容与缩容

(一)扩容

(二)缩容

五,  发布服务

(一) 创建service的作用

(二)创建pod控制器

(三) 创建service

六   负载均衡

(一) 修改各pod访问界面为自定义界面,验证负载均衡

(二)检测轮询效果

七, 更新版本

(一) 查看版本更新策略

(二)更新版本过程 

(三) 版本更新

八    版本回滚

(一)查看历史版本

(二) 撤销上一次更新

(三) 查看回滚是否成功

九    命令总结

(一)查看基本信息

(二)获取资源信息 

(三)创建和删除资源 

(四)更新资源

(五)执行命令 

(六)日志和事件

(七)扩容与缩容

(八)更新版本与回滚

(九)其他常用命令

(十)高级命令 


一,k8s集群资源管理方式分类

1,陈述式命令(命令式对象管理)

这种方式类似于直接在Docker中使用docker run命令。你可以直接使用kubectl命令来操作Kubernetes资源。例如,kubectl run nginx-pod --image=nginx:1.17.1 --port=80,这条命令会在集群中运行一个Pod,并指定Pod使用的Docker镜像和端口号。

2, 陈述式对象配置(命令式对象配置)

这种方式类似于使用docker-compose.yml文件。你可以通过kubectl命令和配置文件来操作Kubernetes资源。例如,kubectl create/delete -f nginx-pod.yaml,这条命令会根据nginx-pod.yaml文件中的定义来创建或删除一个Pod。

3, 声明式对象配置(声明式对象配置)

这种方式使用apply命令和配置文件来操作Kubernetes资源。它类似于数据库的操作方式,如果配置文件中定义了一个资源,并且该资源在集群中不存在,那么kubectl就会创建它;如果该资源已经存在但配置不同,那么kubectl就会更新它。例如,kubectl apply -f nginx-pod.yaml

二 ,   kubectl命令语法

kubectl命令的语法如下

kubectl [command] [type] [name] [flags]

comand #指定要对资源执行的操作,例如create、 get、delete

type #指定资源类型,比如deployment、pod、 service

name #指定资源的名称,名称大小写敏感

flags #指定额外的可选参数

三    查看基本信息

(一)环境指令

命令

作用

kubectl version 查看版本信息
kubectl api-resources 查看资源对象简写
journalctl -u kubelet -f    node节点查看日志
source <(kubectl completion bash) 配置kubectl自动补全
kubectl cluster-info 查看集群信息

1,查看版本信息

kubectl version

2,查看资源对象简写

kubectl api-resources

NAME:资源类型全拼

SHORTNAMES :简写

APIVERSION :资源所属的 API 版本   v1 代表稳定使用

NAMESPACED :是否支持命名空间,true表示支持,false表示不支持

KIND :资源的类型或种类

例如componentstatuses  与  cs 表示同一个指令:

3,  添加补全信息 

配置kubectl自动补全,使用指令,执行此命令后,可以使用tab键,在kubectl进行资源操作时进行补全

[root@master01 ~]#source <(kubectl completion bash)
 
#可以将此命令加入开机自行加载的文件。如$HOME/.bashrc文件、/etc/profile文件

4,   node节点查看日志

journalctl -u kubelet -f

5,  查看集群信息

kubectl cluster-info

6, 查看服务端点(endpoints)信息

[root@master01 ~]#kubectl get endpoints -n wyq
NAME           ENDPOINTS                                      AGE
nginx-server   10.244.1.24:80,10.244.1.25:80,10.244.2.22:80   25m
  • endpoints 指定要获取的是Endpoints资源类型。Endpoints在Kubernetes中扮演着连接Service与Pods的实际角色,它保存了Service对应的所有后端Pods的IP地址和端口号,使得Service能够将流量路由到这些Pod上。

ENDPOINTS:列出了该Endpoints所包含的后端Pods的IP地址和端口。在这个例子中,有三个Pods作为后端服务,它们的IP地址分别是10.244.1.2410.244.1.2510.244.2.22,并且所有Pods都监听在80端口上以提供服务

(二)查看资源信息

命令

作用

kubectl get <resource_type> [-o wide|json|yaml] [-n namespace] 获取指定类型的资源信息,如kubectl get pods获取所有Pod信息。-n 指定命令空间 -o 指定输出格式
kubectl describe <resource_type> <resource_name> 显示指定资源的详细信息。
kubectl explain <resource>: 获取关于资源或资源字段的文档

1,  获取资源相关信息 

kubectl get <resource> [-o wide|json|yaml] [-n namespace]

resource可以是具体资源名称,如pod nginx-xxx;

也可以是资源类型,如pod;

或者all(仅展示几种核心资源,并不完整)

-o 指定输出格式

-n 指定命令空间

2, 查看集群组件状态

kubectl get componentstatuses 或 kubectl get cs

NAME            #集群中的组件名称
STATUS         #组件的健康状态,通常是 "Healthy" 或 "Unhealthy"。
MESSAGE     #提供了关于组件状态的额外信息,通常是一个简单的 "ok" 或更详细的消息。
ERROR         #在组件不健康时可能会显示错误详情,但在健康时通常为空。

3,  查看命名空间 

kubectl get namespace或者kubectl get ns
 
Kubernetes 使用命名空间来将集群中的资源划分到不同的逻辑组中。
在同一个命名空间当中,不允许有相同名称的资源信息,但是在不同的命名空间中可以创建
默认的命名空间是 "default",但通常还有其他命名空间,
如 "kube-system"(用于 Kubernetes 系统组件)和用户自定义的命名空间

NAME       #命名空间的名称。
STATUS   #命名空间的当前状态,通常是 "Active",表示命名空间是活动的并且可用。
AGE         #命名空间自创建以来的时长 

4    查看命名空间中的资源

kubectl get [resource] [-n namespace]  

举例:

kubectl get all -n kube-system 
#查看kube-system中的pod资源

kubectl get all -n kube-system 
#all代表所有类型的资源

kubectl get all -A
#--all-namespaces 或 -A :表示显示所有命令空间

5, 查看资源详细信息

kubectl describe <资源类型> <资源名称> [-n 命名空间]

kubectl describe是Kubernetes命令行工具kubectl的一个命令,用于获取关于指定资源的详细信息。
当你想要深入了解某个资源的状态时(比如它的配置、事件、容器日志等),这个命令会非常有用
 
<资源类型>     #描述的资源的类型,比如 pod、service、deployment、statefulset 等。
<资源名称>     #你想要描述的资源的名称。
[-n 命名空间]  #可选参数,指定资源所在的命名空间。不指定则为当前默认命名空间,通常是default。

查看命名空间kube-system中名称为etcd-master01的pod资源详细信息

(三) 标签

1,标签的作用

辅助筛选资源:通过标签,我们可以筛选出具有特定属性的资源,便于管理和操作。

实现资源的分组:标签可以将资源进行分组,从而合理组织资源结构,使得管理更加有序。

支持负载均衡:在Kubernetes中,Service的Selector会根据标签匹配来实现负载均衡,确保请求能够分发到合适的Pod上。当一个pod迭代或替换之后,新的pod实例IP地址也会改变,同时会将IP地址绑定在标签上,通过访问标签,实现负载均衡

支持Pod的扩容和缩容:Deployment等控制器会根据匹配的标签进行Pod的扩容和缩容,以满足应用的需求。

支持扩展性和灵活性:标签为Kubernetes提供了一种非常灵活的资源管理方式,可以根据需要添加、修改或删除标签,以适应应用的变化和演进。

版本管理:可以使用标签标记不同版本的应用,方便进行版本控制和回滚操作

2,标签的特点

每个对象都可以定义一组键值标签。

每个键对于给定对象必须是唯一的。

标签能够支持高效的查询和监听操作,对于用户界面和命令行是很理想的。

3,标签操作演示

3.1 查看存在资源的标签

kubectl get <资源类型> [-n 命名空间] --show-labels 

查看kube-system命名空间中,所有pod实例的标签 

kubectl get pods -n kube-system --show-labels

指定查看某一个资源的标签

kubectl get pods etcd-master01 -n kube-system --show-labels 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值