k8s管理工具kubectl详解(一)
创始人
2024-04-04 23:07:35
0

目录

一、陈述式管理

1.陈述式资源管理方式

2.k8s相关信息查看

查看版本信息

 查看节点信息

 查看资源对象简写

查看集群信息

配置kubectl自动补全

查看日志

基本信息查看

查看master节点状态

查看命名空间

 3.命名空间操作

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

创建命名空间

 删除命名空间

 4.deployment/pod操作

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

 描述某个资源的详细信息

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

 登陆容器 

 删除(重启)pod资源

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

4.扩缩容

扩容

 缩容

5. 删除副本控制器

6.增加/删除lable

增加label

  删除label

 二、声明式管理

1.声明式管理方法

2.查看资源配置清单

 3.解释资源配置清单

 4.修改资源配置清单并应用

修改yaml文件----离线修改

 删除资源

新建资源

 查看service资源

修改yaml文件---在线修改

 5.删除资源配置清单

陈述式删除

 声明式删除


一、陈述式管理

1.陈述式资源管理方式

  • kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口
  • kubectl是官方的CLI命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息,进而实现管理k8s各种资源的一直有效途径。
  • kubectl的命令大全   kubectl --help
  • k8s官方中文文档:Kubernetes kubectl 命令表 _ Kubernetes(K8S)中文文档_Kubernetes中文社区
  • 对资源的增、删、改、查操作比较容易,但对改的操作就不容易了

2.k8s相关信息查看

查看版本信息

kubectl version

 查看节点信息

kubectl get node

 查看资源对象简写

kubectl api-resources

查看集群信息

kubectl cluster-info

配置kubectl自动补全

source <(kubectl completion bash)

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

一般用的比较少

查看日志

journalctl -u kubelet -f

基本信息查看

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

获取资源的相关信息,-n指定命名空间,-o指定输出格式

        resource可以是具体资源名称,如“pod nhinx-xxx”;也可以是资源类型,如“pod,node,svc,deploy”多种资源使用逗号间隔;或者all(仅显示包含app标签,并不完整)

  • -all-namespace或者-A:标识显示所有命名空间
  • -show-labels:显示所有标签
  • -l app:仅显示标签为app的资源
  • -l app=nginx:仅显示包含app标签,且值为nginx的资源
     

查看master节点状态

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

查看命名空间

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

 3.命名空间操作

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

kubectl get all [-n default]

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

创建命名空间

kubectl create ns kube-zzz

 删除命名空间

kubectl delete ns kube-zzz

 4.deployment/pod操作

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

kubectl create deployment nginx --image=nginx -n kube-public

kubectl get pod -n kube-public
#查看命名空间为kube-public的pod

看到状态为running,就是创建完成并成功启动了

 描述某个资源的详细信息

kubectl describe deployment nginx -n kube-public

kubectl describe pod nginx -n kube-public
#查看pod的详细信息

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

kubectl get pods -n kube-public

 登陆容器 

kubectl exec可以跨主机登陆容器,docker exec只能在容器所在主机登陆。

kubectl exec -it nginx-6799fc88d8-w9wkv bash -n kube-public

 删除(重启)pod资源

由于存在deployment/rc之类的副本控制器,删除pod也会重启拉起来

 删除后,控制器会自动重新启动一个新的pod

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

kubectl delete pod [] -n [] --force --grace-period=0

grace-period表示过渡存活期,默认30s,在删除pod之前允许pod慢慢终止其上的容器进程,从而优雅的退出,0表示立即终止pod

4.扩缩容

扩容

kubectl scale deployment nginx --replicas=3 -n kube-public

  自动创建了3台pod

 缩容

kubectl scale deployment nginx --replicas=1 -n kube-public

5. 删除副本控制器

kubectl delete deployment nginx-test -n kube-public

6.增加/删除lable

增加label

kubectl label deploy nginx version=nginx-latest

  删除label

kubectl label deploy nginx version-

 二、声明式管理

1.声明式管理方法

  • 适合于对资源的修改操作
  • 声明式资源管理方法依赖于资源配置文件对资源进行管理
  • 资源配置清单文件有两种格式:yaml(人性化,易读),json(易于api接口解析)
  • 对资源的观念里,是通过实现定义在同一资源配置清单内,再通过陈述式命令应用到k8s集群里
  • 语法格式:kubectl create/apply/delete -f -o yaml
     

2.查看资源配置清单

kubectl get deploy/nginx -o yaml
查看deploy控制器配置清单

kubcectl get service nginx -o yaml
查看pod配置清单

 3.解释资源配置清单

kubectl explain deployment.metadata

kubectl explain service.metadata

 4.修改资源配置清单并应用

修改yaml文件----离线修改

修改yaml文件:并用kubectl apply -f xxxx.yaml文件使之生效
注意:当apply不生效时,先使用delete清除资源,再apply创建资源

kubectl get service nginx-service -o yaml > nginx-svc.yaml

 删除资源

kubectl delete -f nginx-svc.yaml

新建资源

kubectl apply -f nginx-svc.yaml

 查看service资源

kubectl get svc

修改yaml文件---在线修改

直接使用kubectl edit service nginx-service在线编辑配置资源清单并保存退出即时生效(如port: 888)

PS:此修改方式不会对yaml文件内容修改

kubectl edit service nginx

 5.删除资源配置清单

陈述式删除

kubectl delete service nginx

 声明式删除

kubectl delete -f nginx-svc.yaml

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...