Kubectl基础命令大全

Kubectl简述

在学习如何更有效地使用kubectl以前,您应该基本了解它是什么以及它是如何工做的。nginx

从用户角度来讲:shell

kubectl是控制Kubernetes的驾驶舱。它容许您执行全部可能的Kubernetes操做。json

从技术角度来讲:后端

kubectl是Kubernetes API的客户端,经过该客户端咱们能够彻底控制Kubernetes,这意味着每一个Kubernetes操做都做为API端口公开,而且能够经过对此端点的HTTP请求来执行。api

命令大全(我所知道的)

查询命令

查看全部podbash

kubectl get podsapp

动态监听查看全部podide

kubectl get pods-w学习

查看全部deploymen测试

kubectl get deployment

查看全部service服务

kubectl get service

查看关联后端节点

kubectl get endpoints

查看相关POD的日志

kubectl get logs NAME

pod副本数量调整

kubectl scale [--current-replicas=replicas] --replicas=replicas NAME

其中,

“--current-replicas” 当前副本数量

“--replicas” 副本数量


项目的生命周期

建立--》发布--》更新--》回滚--》删除

建立

kubect run NAME --image=image [--port=port] [--replicas=replicas] [--command]

“--image” 指定镜像

“--replicas” 指定副本数量

“--port” 指定内部通讯端口

实例:kubectl run nginx --image=nginx:latest --replicas=3

以最新版nginx做为镜像创建有着三个副本的pods

发布

kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP|SCTP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type]

“-f FILENAME ” 指定YAML文件名称

“TYPE NAME” 指定deploymen名称

“--type” 指定服务类型(默认为集群地址-clusterip)

“--port=80” 内部通讯的端口

“--target-port=80” 暴露在外部的端口

实例:kubectl expose deploy/nginx --port=80 --target-port=80 --name=nginx-svc --type=NodePort

将nginx之内部端口80,暴露端口80,指定名称为nginx-svc,类型为节点形式进行发布。

更新

kubectl set image deploy/NAME NAME=新版本

实例:kubectl set image deploy/nginx nginx=nginx:1.14

变动nginx版本为nginx1.14

回滚

kubectl rollout [commands]

经常使用command:

history 显示 rollout 历史

pause 标记提供的 resource 为停止状态

resume 继续一个中止的 resource

status 显示 rollout 的状态

undo 撤销上一次的 rollout

实例:kubectl rollout undo deploy/nginx

删除

kubectl delete ([-f FILENAME] | TYPE [(NAME | -l label | --all)]) [options]

实例:

kubectl delete svc/nginx-svc

kubectl delete deploy/nginx


除此以外,还有一批命令~~~

查看资源对象简写

kubectl api-resources

查看具体资源详细信息

kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) [options]

实例:

kubectl describe pod/nginx-7697996758-9d6tf

kubectl describe svc/nginx

编辑资源详细信息

kubectl edit (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME) [options]

实例:

kubectl edit deploy/NAME

进入相应pod中*

kubectl exec POD [-c CONTAINER] -- COMMAND [args...] [options]

例子:kubectl exec -it nginx-7697996758-9d6tf bash

查看生成的YAML格式文件

kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o yaml

查看生成的JSON格式文件

kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json

生成YAML 、 JSON文件导出

kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run -o json(yaml) > test.json(yaml)

将现有资源进行导出

kubectl get svc/nginx-svc --export -o yaml > nginx-svc.yaml

测试命令正确性,不执行(相似shell脚本中的sh -n)

kubectl run nginx --image=nginx --port=80 --replicas=2 --dry-run


create与apply的异同

经过YAML文件创建

kubectl create -f FILENAME [options]

例子:kubectl create -f nginx.yaml

经过YAML文件升级deployment

kubectl apply -f FILENAME

相同点 不一样点
若是yaml文件中的kind值为deployment,那么上面这两个命令均可以建立一个deployment,生成相应数量的pod create命令:是先删除全部现有的东西,从新根据yaml文件生成新的。因此要求yaml文件中的配置必须是完整的<br />
apply命令:根据配置文件里面列出来的内容,升级现有的。因此yaml文件的内容能够只写须要升级的属性
相关文章
相关标签/搜索