文章目录

  • kubectl概述
    • K8s kubectl 命令自动补全
    • kubectl的常用子命令(command)
    • kubernetes资源对象类型(type)
    • kubectl 常用命令总结

kubectl概述

kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署

kubectl命令的语法如下

[root@k8s-master ~]$ kubectl [command] [TYPE] [NAME] [flags]comand:子命令,用于管理和操作Kubernetes集群资源对象的命令,指定要对资源执行的操作,例如create、get、describe和deleteTYPE:指定资源类型,资源类型是大小学敏感的,开发者能够以单数、复数和缩略的形式。例如:$ kubectl get pod pod1 $ kubectl get pods pod1 $ kubectl get po pod1NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有的资源flags:指定可选的参数。例如,可以使用-s或者–server参数指定Kubernetes API server的地址和端口。

K8s kubectl 命令自动补全

  1. 安装bash-completion
[root@k8s-master ~]$ yum -y install bash-completion
  1. 执行bash_completion
[root@k8s-master ~]$ source /usr/share/bash-completion/bash_completion
  1. 重新加载kubectl completion
[root@k8s-master ~]$ source <(kubectl completion bash)
  1. 就能用tab补全命令了

kubectl的常用子命令(command)

kubectl作为kubernetes的命令行工具,主要的职责就是对集群中的资源的对象进行操作,这些操作包括对资源对象的创建、删除和查看等。下表中显示了kubectl支持的所有操作,以及这些操作的语法和描述信息:

操作 语法 描述
annotate kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 … KEY_N=VAL_N [–overwrite] [–all] [–resource-version=version] [flags] 添加或更新一个或多个资源的注释
api-versions kubectl api-versions [flags] 列出可用的API版本
apply kubectl apply -f FILENAME [flags] 将来自于文件或stdin的配置变更应用到主要对象中。
attach kubectl attach POD -c CONTAINER [-i] [-t] [flags] 连接到正在运行的容器上,以查看输出流或与容器交互(stdin)。
autoscale kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [–min=MINPODS] –max=MAXPODS [–cpu-percent=CPU] [flags] 自动扩宿容由副本控制器管理的Pod。
cluster-info kubectl cluster-info [flags] 显示群集中的主节点和服务的的端点信息。
config kubectl config SUBCOMMAND [flags] 修改kubeconfig文件。
create kubectl create -f FILENAME [flags] 从文件或stdin中创建一个或多个资源对象。
delete kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | –all]) [flags] 删除资源对象。
describe kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags] 显示一个或者多个资源对象的详细信息。
edit kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags] 通过默认编辑器编辑和更新服务器上的一个或多个资源对象。
exec kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [– COMMAND [args…]] 在Pod的容器中执行一个命令。
explain kubectl explain [–include-extended-apis=true] [–recursive=false] [flags] 获取Pod、Node和服务等资源对象的文档。
expose kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [–port=port] [–protocol=TCP|UDP] [–target-port=number-or-name] [–name=name] [—-external-ip=external-ip-of-service] [–type=type] [flags] 为副本控制器、服务或Pod等暴露一个新的服务。
get kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [–watch] [–sort-by=FIELD] [[-o | –output]=OUTPUT_FORMAT] [flags] 列出一个或多个资源。
label kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 … KEY_N=VAL_N [–overwrite] [–all] [–resource-version=version] [flags] 添加或更新一个或者多个资源对象的标签。
logs kubectl logs POD [-c CONTAINER] [–follow] [flags] 显示Pod中一个容器的日志。
patch kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) –patch PATCH [flags] 使用策略合并补丁过程更新资源对象中的一个或多个字段。
port-forward kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT […[LOCAL_PORT_N:]REMOTE_PORT_N] [flags] 将一个或多个本地端口转发到Pod。
proxy kubectl proxy [–port=PORT] [–www=static-dir] [–www-prefix=prefix] [–api-prefix=prefix] [flags] 为kubernetes API服务器运行一个代理。
replace kubectl replace -f FILENAME 从文件或stdin中替换资源对象。
rolling-update kubectl rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] –image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC) [flags] 通过逐步替换指定的副本控制器和Pod来执行滚动更新。
run kubectl run NAME –image=image [–env=”key=value”] [–port=port] [–replicas=replicas] [–dry-run=bool] [–overrides=inline-json] [flags] 在集群上运行一个指定的镜像。
scale kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) –replicas=COUNT [–resource-version=version] [–current-replicas=count] [flags] 扩宿容副本集的数量。
version kubectl version [–client] [flags] 显示运行在客户端和服务器端的Kubernetes版本。

kubernetes资源对象类型(type)

在kubernetes中,提供了很多的资源对象,开发和运维人员可以通过这些对象对容器进行编排。在下表中,是kubectl所支持的资源对象类型,以及它们的缩略别名:

资源对象类型 缩略别名
apiservices
certificatesigningrequests csr
clusters
clusterrolebindings
clusterroles
componentstatuses cs
configmaps cm
controllerrevisions
cronjobs
customresourcedefinition crd
daemonsets ds
deployments deploy
endpoints ep
events ev
horizontalpodautoscalers hpa
ingresses ing
jobs
limitranges limits
namespaces ns
networkpolicies netpol
nodes no
persistentvolumeclaims pvc
persistentvolumes pv
poddisruptionbudget pdb
podpreset
pods po
podsecuritypolicies psp
podtemplates
replicasets rs
replicationcontrollers rc
resourcequotas quota
rolebindings
roles
secrets
serviceaccounts sa
services svc
statefulsets
storageclasses

kubectl 常用命令总结

#创建一个nginx的pod
kubectl create deployment nginx --image=nginx# 查看pod状态
kubectl get pod# 暴露端口
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看一下对外的端口
kubectl get pod,svckubectl get nodes  #查看node状态kubectl get ns  #查看名称空间kubectl get pods -n kube-system  #查看pod状态#只显示默认命名空间的pods
kubectl get pods#显示所有空间的pod
kubectl get pods --all-namespaces#显示指定空间的pod
kubectl get pods -o wide --namespace apmkubectl -n onap get svc
#获取所有svc(svc 的type,ip ,port)# 删除指定Pod
kubectl delete pod nginx-5ff7956ff6-fg2db -n dev# 此时,显示删除Pod成功,但是再查询,发现又新产生了一个
kubectl get pods -n dev# 这是因为当前Pod是由Pod控制器创建的,控制器会监控Pod状况,一旦发现Pod死亡,会立即重建
# 此时要想删除Pod,必须删除Pod控制器# 先来查询一下当前namespace下的Pod控制器
kubectl get deploy -n  dev# 接下来,删除此PodPod控制器
kubectl delete deploy nginx -n dev
kubectl run http-app --image=http --replicas=2      #--image执行镜像    --replicas定义副本个数
kubectl get deployment       deployment-name                 #查看部署情况
kubectl describe deloyment                   #查看部署的详细信息
kubectl  get pod                             #查看pod状态
kubectl get pod --show-all                  # 显示所有的权限查看pod
kubectl  get pod -o wide                   #查看pod详情,可以查看到pod ip和分布的node节点
kubectl get node                        #查看node节点状态
kubectl get svc                         #查看service资源
kubectl describe pod podname            #查看pod节点日志信息
kubectl create -f nginx.yml             #创建pod资源
kubectl apply -f nginx.yml              #更新pod资源
kubectl get job                         #查看job状态
kubectl get po --show-all               #查看completed状态的pod
kubectl logs podname                    #查看pod的标准输出
kubectl get events                      #查看集群事件
kubectl label  node 10.199.140.186 disk=ssd    #给node资源添加标签

1、根据yaml配置文件一次性创建service和rc

kubectl create -f my-service.yaml -f my-rc.yaml

2、根据目录下所有.yaml、.yml、.json文件的定义进行创建操作

kubectl create -f <directory>

3、查看所有Pod列表

kubectl get pods

4、查看rc和service列表

kubectl get rc,service

5、显示Node的详细信息

kubectl describe nodes <node-name>

6、显示Pod的详细信息

kubectl describe pods/<pod-name>

7、显示由RC管理的Pod信息

kubectl describe pods <rc-name>

8、删除基于pod.yaml文件定义的Pod

kubectl delete -f pod.yaml

9、删除所有包含某个label的Pod和Service

kubectl delete pods,services -l name=<label-name>

10、删除所有Pod

kubectl delete pods --all

11、在Pod的容器里执行date命令,默认使用Pod中的第1个容器执行

kubectl exec <pod-name> date

12、指定Pod中某个容器执行date命令

kubectl exec <pod-name> -c <container-name> date

13、以bash方式登陆到Pod中的某个容器里

kubectl exec -it <pod-name> -c <container-name> /bin/bash

14、查看容器输出到stdout的日志

kubectl logs <pod-name>

15、跟踪查看容器的日志,相当于tail -f命令的结果

kubectl logs -f <pod-name> -c <container-name>

4、kubernetes 集群管理工具 kubectl相关推荐

  1. docker集群管理工具_太多选择:如何选择正确的工具来管理Docker集群

    docker集群管理工具 There are all kinds of ways to play the Docker game and, obviously, no one of them is g ...

  2. Kubernetes 学习总结(19)—— Kubernetes 集群管理平台如何选择?Rancher vs KubeSphere

    前言 Kubernetes(K8s)集群管理平台都是基于 Kubernetes 提供功能,可以说他们是在 K8s 的基础上封装了一层更为友好的操作方式.他们都是为了降低 k8s 集群运维复杂度,降低运 ...

  3. 搭建kubernetes集群管理平台

    一. kubernetes和相关组件介绍 1. kubernetes概述 Kubernetes是google开源的容器集群管理系统,基于docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务 ...

  4. Docker swarm集群管理工具

    1. 简介 Docker Swarm 是Docker的集群管理工具,简单方便.易于上手. Swarm集群由以下两个组件构成: Mananger:负责整个集群的管理工作包括集群配置.服务管理等所有跟集群 ...

  5. 基于Rancher实现kubernetes集群管理

    基于Rancher实现kubernetes集群管理 1.Rancher介绍 2.Rancher部署 添加kubernetes集群 3.Rancher简单操作 1.Rancher介绍 Rancher可以 ...

  6. kafka集群管理工具kafka-manager

    一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...

  7. 集群管理工具KafkaAdminClient——改造

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  8. 美团点评Kubernetes集群管理实践

    背景 作为国内领先的生活服务平台,美团点评很多业务都具有非常显著.规律的"高峰"和"低谷"特征.尤其遇到节假日或促销活动,流量还会在短时间内出现爆发式的增长.这 ...

  9. redis-manger集群管理工具

    redis-manger集群管理工具 源起 安装 优点 源起 缺少一个redis集群管理工具 安装 链接: github地址 优点 安装简单,功能够用

最新文章

  1. stm32 堆和栈(stm32 Heap Stack)
  2. iOS开发 开发者证书申请及上架流程
  3. 【Breadth-first Search 】103. Binary Tree Zigzag Level Order Traversal
  4. python求散点曲线下方面积
  5. 手机浏览器页面知识收集(转)
  6. 第十三届蓝桥杯大赛个人赛全国总决赛准考证开放下载
  7. 附件文件超过了服务器的大小,Exchange 2010修改附件大小限制
  8. 新知实验室_体验 TRTC 视频会议
  9. aip格式转化为pdf_aip文件阅读器
  10. linux连不上网问题总结
  11. RocketMQ基础提高进阶demo实例应用
  12. SGU 264 Travel(稳定婚姻匹配)
  13. 手把手教你用深度学习做物体检测(二):数据标注
  14. 真机运行、手机运行、真机联调常见问题
  15. B.系数 (Lucas定理)
  16. vscode中选中多行多光标进行操作及一些常用的命令(快捷键)
  17. 电子邮件(E-mail)证据若干问题研究
  18. Python报错ReadTimeoutError
  19. 深度学习——Metal artifact reduction
  20. 三调 图斑地类面积_收藏 | “三调数据”与国土空间规划用地对接的70个技术问题...

热门文章

  1. R语言散点图可视化:自定义标题和标签、拟合回归线、lowess为散点图添加平滑拟合线、修改散点图中点颜色和点符号、分组散点图、添加图例、pairs可视化散点图矩阵、ggplt2可视化、lattice
  2. R语言optim函数进行函数优化实战(和lm函数进行对比)
  3. Python构建lassocv模型并输出Rad-score公式
  4. 移动端图形化报表界面设计_B端移动设计 | 客户RFM分析
  5. PacBio SMRT Sequencing
  6. Linux下如何查看硬件信息?
  7. 一种PacBio测序数据组装得到的基因组序列的纠错方法技术 (专利技术)
  8. 数据结构---基础概念
  9. 基因组组装(Genome Assembly)
  10. STM32-I2C总线驱动程序分析