4、kubernetes 集群管理工具 kubectl
文章目录
- 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 命令自动补全
- 安装bash-completion
[root@k8s-master ~]$ yum -y install bash-completion
- 执行bash_completion
[root@k8s-master ~]$ source /usr/share/bash-completion/bash_completion
- 重新加载kubectl completion
[root@k8s-master ~]$ source <(kubectl completion bash)
- 就能用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相关推荐
- docker集群管理工具_太多选择:如何选择正确的工具来管理Docker集群
docker集群管理工具 There are all kinds of ways to play the Docker game and, obviously, no one of them is g ...
- Kubernetes 学习总结(19)—— Kubernetes 集群管理平台如何选择?Rancher vs KubeSphere
前言 Kubernetes(K8s)集群管理平台都是基于 Kubernetes 提供功能,可以说他们是在 K8s 的基础上封装了一层更为友好的操作方式.他们都是为了降低 k8s 集群运维复杂度,降低运 ...
- 搭建kubernetes集群管理平台
一. kubernetes和相关组件介绍 1. kubernetes概述 Kubernetes是google开源的容器集群管理系统,基于docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务 ...
- Docker swarm集群管理工具
1. 简介 Docker Swarm 是Docker的集群管理工具,简单方便.易于上手. Swarm集群由以下两个组件构成: Mananger:负责整个集群的管理工作包括集群配置.服务管理等所有跟集群 ...
- 基于Rancher实现kubernetes集群管理
基于Rancher实现kubernetes集群管理 1.Rancher介绍 2.Rancher部署 添加kubernetes集群 3.Rancher简单操作 1.Rancher介绍 Rancher可以 ...
- kafka集群管理工具kafka-manager
一.kafka-manager简介 kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作.具体支持以下内容: 管理多个集群 ...
- 集群管理工具KafkaAdminClient——改造
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- 美团点评Kubernetes集群管理实践
背景 作为国内领先的生活服务平台,美团点评很多业务都具有非常显著.规律的"高峰"和"低谷"特征.尤其遇到节假日或促销活动,流量还会在短时间内出现爆发式的增长.这 ...
- redis-manger集群管理工具
redis-manger集群管理工具 源起 安装 优点 源起 缺少一个redis集群管理工具 安装 链接: github地址 优点 安装简单,功能够用
最新文章
- stm32 堆和栈(stm32 Heap Stack)
- iOS开发 开发者证书申请及上架流程
- 【Breadth-first Search 】103. Binary Tree Zigzag Level Order Traversal
- python求散点曲线下方面积
- 手机浏览器页面知识收集(转)
- 第十三届蓝桥杯大赛个人赛全国总决赛准考证开放下载
- 附件文件超过了服务器的大小,Exchange 2010修改附件大小限制
- 新知实验室_体验 TRTC 视频会议
- aip格式转化为pdf_aip文件阅读器
- linux连不上网问题总结
- RocketMQ基础提高进阶demo实例应用
- SGU 264 Travel(稳定婚姻匹配)
- 手把手教你用深度学习做物体检测(二):数据标注
- 真机运行、手机运行、真机联调常见问题
- B.系数 (Lucas定理)
- vscode中选中多行多光标进行操作及一些常用的命令(快捷键)
- 电子邮件(E-mail)证据若干问题研究
- Python报错ReadTimeoutError
- 深度学习——Metal artifact reduction
- 三调 图斑地类面积_收藏 | “三调数据”与国土空间规划用地对接的70个技术问题...
热门文章
- R语言散点图可视化:自定义标题和标签、拟合回归线、lowess为散点图添加平滑拟合线、修改散点图中点颜色和点符号、分组散点图、添加图例、pairs可视化散点图矩阵、ggplt2可视化、lattice
- R语言optim函数进行函数优化实战(和lm函数进行对比)
- Python构建lassocv模型并输出Rad-score公式
- 移动端图形化报表界面设计_B端移动设计 | 客户RFM分析
- PacBio SMRT Sequencing
- Linux下如何查看硬件信息?
- 一种PacBio测序数据组装得到的基因组序列的纠错方法技术 (专利技术)
- 数据结构---基础概念
- 基因组组装(Genome Assembly)
- STM32-I2C总线驱动程序分析