0
点赞
收藏
分享

微信扫一扫

kubernetes-kubectl操作实例

何以至千里 2022-01-22 阅读 25

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

查看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

kubctl delete pods --all

5.执行容器的命令

执行Pod的date命令,默认使用Pod中的第一个容器执行

kubectl exec <pod-name> date

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

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

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

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

6.查看容器日志

查看容器输出到stdout的日志

kubectl logs <pod-name>

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

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

7.创建或者更新资源对象

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

kubectl apply -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-6ddbbc-sfdcv 8888:80

10.在Pod和本地之间复制文件

把Pod上的/etc/fstab复制到本地的/tmp目录:

kubectl cp nginx-sdfdsdf-sfdcv:/etc/fstab /tmp

11.资源对象的标签设置

为default namespace设置testing=true标签:

kubectl label namespaces default testing=true

12.检查可用的API资源类型列表

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

kubctl api-resources

13.使用命令行插件

为了扩展kubectl的功能,Kubernetes从1.8版本开始引入插件机制, 在1.14版本时达到稳定版。

用户自定义插件的可执行文件名需要以“kubectl-”开头,复制到

$PATH中的某个目录(如/usr/local/bin),然后就可以通过kubectl

运行自定义插件了。例如,实现一个名为hello的插件,其功能为在屏幕上输出字符串“hello world”:

新建名为kubectl-hello的可执行脚本文件,其内容为

echo "hello word"

复制kubectl-hello文件到/usr/local/bin/目录下,就完成了安装插件的工作。

然后在kubectl命令后带上插件名称就能使用这个插件了:

# kuectl hello
hello word

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

kubectl plugin list

更完整的插件开发示例可以访问:插件plugin
https://github.com/kubernetes/sample- cli-plugin

举报

相关推荐

0 条评论