Kubernetes--kubectl
一、Kubectl命令行说明
| 类型 | 命令 | 描述 | 
| 基础命令 | create | 通过文件名或标准输入创建资源 | 
| expose | 将一个资源公开为一个新的kubernetes服务 | |
| run | 创建并运行一个特定的镜像,可能是副本 创建一个deployment或job管理创建的容器 | |
| set | 配置应用资源 修改现有应用程序资源 | |
| get | 显示一个或多个资源 | |
| explain | 文档参考资料 | |
| edit | 使用默认的编辑器编辑一个资源 | |
| delete | 通过文件名、标准输入、资源名称或标签选择器来删除资源 | |
| 部署命令 | rollout | 管理资源的发布 | 
| rolling-update | 执行指定复制控制器的滚动更新 | |
| scale | 扩容或缩容Pod数量,Deployment、ReplicasSet、RC或Job | |
| autoscale | 创建一个自动选择扩容或者缩容并设置Pod数量 | |
| 集群管理命令 | certificate | 修改证书资源 | 
| cluster-info | 显示集群信息 | |
| top | 显示资源(CPUMemory/Storage) | |
| cordon | 标记节点为不可调度 | |
| uncordon | 标记节点可调度 | |
| drain | 维护期间排除节点 | |
| taint | 更新一个或多个节点上的污点 | |
| 排错/调试 | describe | 显示特定资源或资源组的详细信息 | 
| logs | 打印pod中容器的日志 | |
| attach | 连接到一个运行的容器,既可以查看output stream,也可以与容器(stdin)进行交互 | |
| exec | 在容器中执行命令 | |
| port-forward | 将一个或多个本地端口转发到pod中 | |
| proxy | 运行Kubernetes API服务器的代理 | |
| cp | 从容器中复制文件或目录 | |
| auth | 检查授权 | |
| 高级命令 | apply | 通过文件名或标准输入将配置应用于资源 | 
| patch | 使用(patch)补丁修改、更新资源的字段 | |
| replace | 用文件名或标准输入替换资源 | |
| convert | 在不同的API版本之间转换配置文件 | |
| 设置命令 | label | 更新资源的标签 | 
| annotate | 更新资源上的注释 | |
| completion | 输出指定shell的代码(bash or zsh) | |
| 其他命令 | api-versions | 在服务器上打印支持的API版本,格式为“group / version” | 
| config | 修改Kubernetes的文件 | |
| help | help命令 | |
| plugin | 显示安装的插件 | |
| version | 显示版本信息 | 
具体可以参考:https://kubernetes.io/docs/reference/kubectl/kubectl/
二、kubectl事例
(1)创建一个deployment(deployment用来管理Pod和RS)
# kubectl run hello-world --replicas=3 --labels="app=example_nginx" --image=nginx:1.10 --port=80
deployment.apps "hello-world" created # 备注
hello-world : deployment的名称 --replicas:副本数 --labels:标签(非唯一,用于识别用途等特点) --image:使用的镜像 --port:暴露的端口
(2)查看pod
[root@master-01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
hello-world-76c54b84b-b5bcz 1/1 Running 0 11m
hello-world-76c54b84b-bmhsd 1/1 Running 0 11m
hello-world-76c54b84b-rgn2q 1/1 Running 0 11m
[root@master-01 ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
hello-world-76c54b84b-b5bcz 1/1 Running 0 11m 10.20.184.81 master-01
hello-world-76c54b84b-bmhsd 1/1 Running 0 11m 10.20.254.104 node-03
hello-world-76c54b84b-rgn2q 1/1 Running 0 11m 10.20.190.57 node-01
(3)查看deployment
[root@master-01 ~]# kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
hello-world 3 3 3 3 12
(4)查看pod的描述信息
[root@master-01 ~]# kubectl describe pod hello-world-76c54b84b-b5bcz
Name: hello-world-76c54b84b-b5bcz
Namespace: default
Node: master-01/172.16.60.95
Start Time: Wed, 20 Jun 2018 09:53:07 +0800
Labels: app=example_nginx
pod-template-hash=327106406
Annotations: <none>
Status: Running
IP: 10.20.184.81
Controlled By: ReplicaSet/hello-world-76c54b84
.
.
.
(5)描述deployment信息
[root@master- ~]# kubectl describe deploy/hello-world
Name: hello-world
Namespace: default
CreationTimestamp: Wed, Jun :: +
Labels: app=example_nginx
Annotations: deployment.kubernetes.io/revision=
Selector: app=example_nginx
Replicas: desired | updated | total | available | unavailable
StrategyType: RollingUpdate
MinReadySeconds:
RollingUpdateStrategy: max unavailable, max surge
Pod Template:
Labels: app=example_nginx
Containers:
hello-world:
Image: nginx:1.10
Port: /TCP
Host Port: /TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: hello-world-76c54b84b (/ replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 18m deployment-controller Scaled up replica set hello-world-76c54b84b to
(6)查看其它命名空间的资源(--namespace xxx / -n xxx)
[root@master-01 ~]# kubectl get pod -o wide -n kube-system
NAME READY STATUS RESTARTS AGE IP NODE
calico-kube-controllers-98989846-gjk55 1/1 Running 1 8d 172.16.60.98 node-02
calico-node-4mxvv 1/1 Running 1 8d 172.16.60.98 node-02
calico-node-ftg9v 1/1 Running 1 8d 172.16.60.96 master-02
calico-node-hctvm 1/1 Running 1 8d 172.16.60.97 node-01
calico-node-rbv5b 1/1 Running 1 8d 172.16.60.99 node-0
(7)edit修改配置
# 将刚才port的80 改为8088 [root@master-01 ~]# kubectl edit deploy hello-world ...
...
...
ports:
- containerPort: 8088
...
...
describe检查
[root@master-01 ~]# kubectl describe deploy/hello-world
...
...
...
Pod Template:
Labels: app=example_nginx
Containers:
hello-world:
Image: nginx:1.10
Port: 8088/TCP
Host Port: 0/TCP
(8)创建一个Service对象,暴露Deployment端口
[root@master-01 ~]# kubectl expose deploy/hello-world --port=88 --type=NodePort --target-port=80 --name=example-nginx-service
service "example-nginx-service" exposed # 备注
--port=88:Service服务的端口 --target-port=80: 容器暴露的端口 --type=NodePort:会随机开放一个宿主机端口(端口范围在apiserver中定义)
查看/描述 服务
[root@master-01 ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
example-nginx-service NodePort 10.254.43.65 <none> 88:40591/TCP 5m [root@master-01 ~]# kubectl describe svc example-nginx-service
Name: example-nginx-service
Namespace: default
Labels: app=example_nginx
Annotations: <none>
Selector: app=example_nginx
Type: NodePort
IP: 10.254.43.65
Port: <unset> 88/TCP
TargetPort: 80/TCP
NodePort: <unset> 40591/TCP
Endpoints: 10.20.184.82:80,10.20.190.59:80,10.20.254.106:80
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
访问nginx
# 可以通过Service 的cluster-ip:88 / ndoe-ip:40591 [root@master-01 ~]# curl 10.254.43.65:88
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p> <p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p>
</body>
</html>
# 任意node-ip
[root@master-01 ~]# curl 172.16.60.95:40591
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p> <p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p>
</body>
</html>
(9)创建一个Service对象,暴露UDP端口
# kubectl expose deploy/hello-world --port=4123 --type=NodePort --protocol=udp --target-port=80 --name=example-upd-service
(10)查看Pod日志
[root@master-01 ~]# kubectl logs pods/hello-world-76c54b84b-rx4vz 172.16.60.95 - - [20/Jun/2018:02:35:20 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
172.16.60.95 - - [20/Jun/2018:02:36:06 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
172.16.60.95 - - [20/Jun/2018:02:36:43 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36" "-"
(11)使用标签查询Pod
[root@master-01 ~]# kubectl get pod --selector="app=example_nginx" -o wide
NAME READY STATUS RESTARTS AGE IP NODE
hello-world-76c54b84b-8zn5j 1/1 Running 0 18m 10.20.190.59 node-01
hello-world-76c54b84b-pbp9h 1/1 Running 0 18m 10.20.254.106 node-03
hello-world-76c54b84b-rx4vz 1/1 Running 0 18m 10.20.184.82 master-01
Kubernetes--kubectl的更多相关文章
- Kubernetes kubectl 命令
		kubectl 命令用来操作 Kubernetes 集群中的资源对象,包括对资源的创建.删除.查看.修改.配置.运行等 命令语法:kubectl [command] [TYPE] [NAME] [fl ... 
- [Kubernetes]kubectl命令补全出错
		在kubernetes集群中,命令补全能够省很多事,但是这两天就很奇怪 kubectl get pod -n kube+tab键自动补全Namespace的时候出现错误 kubectl get pod ... 
- Kubernetes kubectl 命令概述
		kubectl用于运行Kubernetes集群命令的管理工具. 语法 kubectl [command] [TYPE] [NAME] [flags] command:指定要在一个或多个资源执行的操作 ... 
- Kubernetes,kubectl常用命令详解
		kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kub ... 
- Kubernetes - kubectl proxy
		最近在玩flink部署在k8s上,但是k8s以前没玩过,参照前几天写的文章可部署一个简单的k8shttps://www.cnblogs.com/felixzh/p/9726244.html 在参照fl ... 
- [Kubernetes] Kubectl and Pod
		1. Create and run a Pod kubectl run my-nginx --image=nginx:alpine We can run kubectl get all to see ... 
- kubernetes kubectl 命令自动补全
		yum install -y bash-completion source /usr/share/bash-completion/bash_completion source <(kubectl ... 
- Kubernetes源码之旅:从kubectl到API Server
		概述: Kubernetes项目目前依然延续着之前爆炸式的扩张.急需能够理解Kubernetes原理并且贡献代码的软件开发者.学习Kubernetes源码并不容易.Kubernetes是使用相对年轻的 ... 
- kubernetes入门(08)kubernetes单机版的安装和使用
		kubectl get - 类似于 docker ps ,查询资源列表 kubectl describe - 类似于 docker inspect ,获取资源的详细信息 kubectl logs - ... 
- yum方式安装kubernetes
		环境准备 master01 node01 node02,连通网络,修改hosts文件,确认3台主机相互解析 vim /etc/hosts 127.0.0.1 localhost localhost.l ... 
随机推荐
- centos下部署禅道流程
			原文摘录:https://www.jianshu.com/p/71e9dab130a5 下面将我在Linux系统下搭建禅道服务的过程分享给大家. 第一步:下载禅道 Linux中可以用以下命令来下载安装 ... 
- (第七周)评论alpha发布
			本人所在组:奋斗吧兄弟 按课上展示组的顺序对其他组进行点评: 1. 新蜂 项目:游戏俄罗斯方块 界面完善,已经实现了游戏的基本功能.可以对图形进行变换形状,进行位置移动,可以加快下落的速度,并对一整 ... 
- b6
			吴晓晖(组长) 过去两天完成了哪些任务 对手写输入进行了重构,然后重新捋了一下bayes的思路 展示GitHub当日代码/文档签入记录 接下来的计划 推荐算法 还剩下哪些任务 组员:刘帅珍 过去两天完 ... 
- Teamwork(The first day of the team)
			今天是第一次的小组讨论,我们主要是分析了我们的大概方向及大概功能及相应的分工.其实具体也还没有确定下来,只是大概的说了一下,确定了master为杨灵超同学.下面用图片记录我们这一天的工作内容(杨灵超V ... 
- 团队作业4——第一次项目冲刺(Alpha版本)2017.11.18
			1.当天站立式会议照片 本次会议在5号公寓312召开,本次会议内容:①:熟悉每个人想做的模块.②:根据老师的要求将项目划分成一系列小任务.③:在上次会议内容完成的基础上增加新的任务. 2.每个人的工作 ... 
- 20_集合_第20天(Map、可变参数、Collections)_讲义
			今日内容介绍 1.Map接口 2.模拟斗地主洗牌发牌 01Map集合概述 A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式 ... 
- angularJS1笔记-(19)-angular异步加载包的方式
			我们平时写的导入包的方式都是同步方式,有时候会显得过于卡顿,这样我们就可以使用异步加载的方式. script.js方式: 执行结果为: 异步加载还可以加载多个即为script([,,,],functi ... 
- jQuery扩展插件
			jQuery有多好用,大家有目共睹的,但是有时候不是每个功能都是万能的,有时候我们需要实现自己的功能,jQuery提供了很好的拓展功能,我们可以去拓展插件,更好的利用jQuery 查看官网,可知,有两 ... 
- MSTSC 修改端口的简单方法 3389
			1. 3389端口太过危险 最简单的办法是 修改默认端口方法非常简单. 2. win+r 打开运行, 输入 regedit 打开 注册表 3. 在地址栏输入 远程的服务的路径 输入的内容为: 计算机 ... 
- C++的继承与多态
			◆ 概念介绍 继承:为了代码的重用,保留基类的原本结构,并新增派生类的部分,同时可能覆盖(overide)基类的某些成员. 多态:一种将不同的特殊行为和单个泛化记号相关联的能力,分为静态多态和动态多态 ... 
