k8s kubectl 操作示例

1.创建资源对象
根据YAML配置文件一次性创建Service和RC:

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

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

kubectl create -f <directory>

2.查看资源对象
查看所有Pod列表:

kubectl get pods -n namespace
#查看包含已经停止的pod
kubectl get pods --show-all -n namespace
#查看所有pod的详细信息
kubectl get pods -o wide

查看RC和Service列表:

kubectl get rc,service

3.描述资源对象
显示Node的详细信息:

kubectl describe nodes <node-name>

显示Pod的详细信息:

kubectl describe pods/<pod-name>

显示由RC管理的Pod的信息:

kubectl describe pods <rc-name>

4.删除资源对象
基于pod.yaml定义的名称删除Pod:

kubectl delete -f pod.yaml

删除所有包含某个Label的Pod和Service:

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

删除所有Pod:

kubectl delete pods --all

5.执行容器的命令
执行Pod的date命令,默认使用Pod中的第1个容器执行:

kubectl exec <pod-name> date

指定Pod中的某个容器执行date命令:

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

通过bash获得Pod中某个容器的TTY,相当于登录容器:

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

不加-c参数会到一个默认的容器
6.查看容器的日志
查看容器输出到stdout的日志:

kubectl logs <pod-name>

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

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

7.创建或更新资源对象
用法和kubectl create类似,逻辑稍有差异:如果目标资源对象不存在,则进行创建;否则进行更新,例如:

kubectl applf -f app.yaml

8.在线编辑运行中的资源对象
可以使用kubectl edit命令编辑运行中的资源对象,例如使用下面的命令编辑运行中的一个Deployment:

kubectl edit deploy nginx

在命令执行之后,会通过YAML格式展示该对象的定义和状态,用户可以对代码进行编辑和保存,从而完成对在线资源的直接修改。
9.将Pod的开放端口映射到本地
将集群上Pod的80端口映射到本地的8888端口,在浏览器http://127.0.0.1:8888中就能够访问到容器提供的服务了:

kubectl port-forward --address 0.0.0.0 pod/nginx-6ddbbc47fb-sdfcv 8888:80

10.在Pod和本地之间复制文件
把Pod上的/etc/fstab复制到本地的/tmp目录:

kubectl cp nginx-6ddbbc47fb-sfcv:/etc/fstb /tmp

11.资源对象的标签设置
为default namespace设置testing=true标签:

kubectl label namespaces default testing=true

12.检查可用的API资源类型列表
该命令经常用于检查特定类型的资源是否已经定义,列出所有资源对象类型:

kubectl api-resources

13.使用命令行插件
为了扩展kubectl的功能,Kubernetes从1.8版本开始引入插件机制,在1.14版本时达到稳定版。
用户自定义插件的可执行文件名需要以“kubectl-”开头,复制到$PATH中的某个目录(如/usr/local/bin),然后就可以通过kubectl 运行自定义插件了。例如,实现一个名为hello的插件,其功能为在屏幕上输出字符串“hello world”:
新建名为kubectl-hello的可执行脚本文件,其内容为

echo "hello world"

复制kubectl-hello文件到/usr/local/bin/目录下,就完成了安装插件的工作。
然后在kubectl命令后带上插件名称就能使用这个插件了:

#kubectl hello 
hello world

使用kubectl plugin list命令可以查看当前系统中已安装的插件列表:

#kubectl plugin list
The fllowing kubectl-compatible plugins are available:

/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo
/usr/local/bin/kubectl-bar

更完整的插件开发示例可以从https://github.com/kubernetes/sample-cli-plugin找到。
14创建和查看configmap

$kubectl create -f cm-appconfigfiles.yaml
#kubectl get configmap cm-appconfigfiles
NAME 							DATA						AGE
cm-appconfigfiles 		2								14s
#kubectl describe configmap cm-appconfigfiles
Name:								cm-appconfigfiles
Namespace:						default
Labels:								<none>
Annotations:						<none>

Data
===
key-loggingproerties:      1809 bytes
key-serverxml:					1686 bytes

查看已经创建好的configmap的详细内容,可以看到两个配置文件的全文:

#kubectl get configmap cm-appconfigfiles -o yaml

15获取pod和node的资源使用信息

kubectl top nodes   #获取nodes的cpu和memory信息
kubectl top pods    #获取pods的cpu和memory信息
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值