首页 > 其他分享 >k8s之kubectl命令格式

k8s之kubectl命令格式

时间:2022-10-24 11:39:29浏览次数:45  
标签:kubectl -- 指定 demoapp 格式 pod k8s 资源

一  kubectl介绍

kubectl是最常用的客户端工具之一,它提供了基于命令行访问kubernetes API的简洁方式,支持对各种类型资源的CRUD,能够满足针对kubernetes系统的绝大部分的操作需求。

kubectl特性丰富且功能强大,是kubernetes管理员最常用的集群管理工具,其最基本的语法格式为kubectl  [command] [TYPE] [NAME] [flages];

  • command:对资源执行相应操作的子命令,例如get、create、delete、run等;
  • TYPE:要操作的资源类型,例如pods、services等;类型名称大小写敏感,但支持使用单数、复数或简写格式;
  • NAME:要操作的资源对象名称,大小写敏感;省略时,则表示指定TYPE的所有资源对象;同一类型的资源名称可于TYPE后同时给出多个,也可以直接使用TYPE/NAME的格式来为每个资源对象分别指定类型;
  • flags:命令行选项,例如-s或--server等;另外get等命令在输出时还有一个常用的标志-o <format>用于指定输出格式;

二 kubectl核心子命令

root@k8s-master-01:~# kubectl --help
kubectl controls the Kubernetes cluster manager.
Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/基础命令(初级):

create 通过文件或标准输入创建资源。create --save-config 等同于apply命令。

expose 基于RC、service、Deployment或pod创建service资源。

run 在集群中一pod形式运行指定的镜像。

set 设置目标资源对象的特定属性。基础命令 (中级):

explain 打印指定资源的内置文档。

get 显示一个或多个资源。

edit 编辑资源。

delete 基于文件名、stdin、资源或名字,以及资源和选择器删除资源。部署命令:

rollout 管理资源的滚动更新。

scale 伸缩Deployment、ReplicaSet、RC或job的规模。

autoscale 对Deployment、ReplicaSet、RC进行自动伸缩。集群管理命令:

certificate 配置数字证书资源。

cluster-info 打印集群信息。

top 打印资源(CPU/memory)使用率。

cordon 将指定node设定为“不可用”(unschedulable)状态。

uncordon 将指定node设定为“可用”(schedulable)状态。

drain “排空”Node上的pod以进入“维护”模式。

taint 为node声明污点及标准行为。排错及调试命令:

describe 显示指定的资源或资源组的详细信息。

logs 显示一个pod内容容器的日志。

attach 附加终端至一个运行中的容器。

exec 在容器中执行指定命令。

port-forward 将本地的一个或多个端口转发至指定的Pod。

proxy 创建能够访问kubernetes API Server的代理。

cp 在容器间复制文件或目录。

auth 打印授权信息。

debug 创建调试会话以对工作负载和节点进行故障排除。高级命令:

diff 对比当前版本与即将应用的新版的不同。

apply 基于文件或stdin将配置应用于资源。

patch 使用策略合并补丁更新资源字段。

replace 基于文件或stdin替换一个资源。

wait 等待一个或多个资源的指定情况。

kustomize 基于目录或URL构建kustomization目标。设置命令:

label 更新指定资源的label。

annotate 更新资源的annotation。

completion 输出指定的shell的补全码。其它命令:

api-resources 打印API支持的资源类型。

api-versions 以group/version格式打印服务器支持的API版本信息。

config 配置kubeconfig文件的内容。

plugin 运行命令行插件。

version 打印kubernetes服务端和客户端的版本信息。Usage:

kubectl [flags] [options]
Use "kubectl <command> --help" for more information about a given command.

Use "kubectl options" for a list of global command-line options (applies to all commands).

三 kubectl get命令的输出格式

-o wide                     以纯文档格式显示资源的附加信息。
-o name 仅打印资源的名称。
-o yaml 以YAML格式化输出API对象信息。
-o json 以json格式化输出API对象信息。
-o jsonpath 以自定义jsonpath模板格式输出API对象信息。
-o go-template 以自定义Go模板格式输出API对象信息。
-o custom-columns 自定义要输出的字段。
-s或--server 指定API Server的地址和端口。
--kubeconfig 使用的kubeconfig配置文件路径,默认为~/.kune/config。
-n或--namespace 命令执行的目标名称空间。

四 kubectl常用操作示例

4.1 创建资源对象

~# kubectl create namespace dev #创建名为dev的名称空间。
~# kubectl create service clusterip demoapp --tcp=80 -n dev #在dev名称空间中创建名为demoapp的service资源对象。
~# kubectl create deployment demoapp --image="damoapp:v1.0" -n dev #在dev名称空间中创建为名demoapp的Deployment控制器资源。
~# kubectl apply -f deployment-demoapp.yaml -f service-damoapp.yaml #指定声明式配置文件创建资源。
~# kubectl apply . #执行当前目录下所有的yaml文件。

4.2 查看资源对象

~# kubectl get namespace    #列出所有的namespace资源对象
~# kubectl get pods,services -o wide #列出默认名称空间的pod和service,并输出额外信息。
~# kubectl get pods -l k8s-app -n kube-system # 列出kube-system名称空间拥有k8s-app标签名称的所有pod对象。
~# kubectl explain deployment.spec.template.spec.containers # 查看deployment.spec.template.spec.containers字段信息。

4.3 删除资源对象

~# kubectl delete services demoapp-svc #删除默认名称空间中名为demoapp-svc的service资源对象。
~# kubectl delete pods -l k8s-app=kube-proxy -n kube-system #删除kube-system名称空间中带有k8s-app=kube-proxy标签的所有pod对象。
~# kubectl delete pods --all -n kube-public #删除kube-public名称空间中所有的pod对象。
~# kubectl delete pods demoapp --force --grace-period=0 #指定删除资源宽限期。
~# kubectl delete -f nginx.yaml #删除以nginx.yaml创建的资源。

4.4 资源对象打label

~# kubectl label node 192.168.174.106 project=dev #给192.168.174.106 node节点添加project=dev标签。
~# kubectl label node 192.168.174.106 project- #删除192.168.174.106 node节点的project=dev的标签。

4.5 将node设为不可用

~# kubectl cordon 192.168.174.105  #将192.168.174.105 设置为schedulingDisabled
~# kubectl uncordon 192.168.174.105 #将102.168.174.105 设置为可调度节点。

4.6 pod驱逐

~# kubectl drain 192.168.174.105 --force --ignore-daemonsets --delete-emptydor-data#驱逐当前节点的所有pod,适用于无状态服务。

4.7 pod扩容缩容

~# kubectl scale demoapp --replicas=3 #将demoapp的pod副本数扩展至3个。

 

 

 



标签:kubectl,--,指定,demoapp,格式,pod,k8s,资源
From: https://blog.51cto.com/u_4028786/5789206

相关文章

  • k8s之k8s集群版本升级
    一升级场景1.1小版本更新小版本更新侧重于稳定性更新。1.2大版本更新大版本更新侧重于功能更新,需要先在测试环境升级,更新后需要测试现有业务兼容性。测试通过后升级线上......
  • MySQL语句查询--日期格式化和取年月日操作
    在数据库中对表中的(birthday:2010-12-11)进行读取时,需要读取不同的内容,分别读出日期的年月日://出生日为一号;select*froms_studentwhereDAY(birthday)=01;//出生的月......
  • consul命令格式
    一consul命令格式root@consul-01:~#consul--helpUsage:consul[--version][--help]<command>[<args>]可用的命令有:acl与Consul的ACL交互agent运行一个Con......
  • dicom格式是什么(Dicom文件是什么)
    关于Dicom和DicomRT的相关资料DICOM介绍DICOM即数字影像和通信标准。在医学影像信息学的发展和PACS的研究过程中,由于医疗设备生产厂商的不同,造成与各种设备有关的医学图像......
  • jsp页面中的正则表达式--主要用于js判断文本格式
    一、方括号[]举例:二、^三、元字符举例的话,就可以这么说,要实现要表示整数的话:[]就表示输入的文本框里面的数字的第一位,可以这么写--->[1-9]然后已知\d表示的与[0-9......
  • k8s基础篇 pod(七)污点和容忍度
    7.1node节点亲和性node节点亲和性调度:nodeAffinity[root@k8s01~]#kubectlexplainpod.spec.affinityKIND:PodVERSION:v1RESOURCE:affinity<Object>DESCRIPTION......
  • Docker 与 K8S学习笔记(二十五)—— Pod的各种调度策略(下)
    在实际应用中,我们往往需要提高Kubernetes集群的资源利用率,即允许集群中所有负载所需的资源总量超过集群所提供的资源量,这个时候,当资源不足时,系统可以选择释放一些不重要的......
  • 在k8s集群基于nfs共享存储部署jenkins单体服务
    一、准备jenkins镜像dockerpulljenkins/jenkins:2.374dockertagjenkins/jenkins:2.374harbor.magedu.net/magedu/jenkins:2.374dockerpushharbor.magedu.net/mage......
  • 容器5种网络模式 与 K8S pod网络关系
    文档说明:只记录关键地方;理解了容器网络模式,也就知道了如何把多个容器相互连接起来容器的网络模式和跨主机通信:network_mode:"bridge"network_mode:"host"netwo......
  • 尚硅谷k8s(五):搭建k8s集群—平台规划和部署方式介绍
    搭建k8s环境平台规划单master集群多master集群服务器硬件配置要求测试环境:master2核4G20Gnode4核8G40G生产环境:更高要求搭建k8s集群部署方式目前生产部署......