kubernetes(3)命令行工具(kubectl)、项目编排(yaml)

命令行工具:kubectl

概述

kubectl 是 Kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署

语法

kubectl [command] [TYPE] [NAME] [flags]

参数说明:

  1. comand:指定要对资源执行的操作,例如 create、get、describe 和 delet
  2. TYPE:指定资源类型,资源类型是大小写敏感的,开发者能够以单数、复数和缩略的形式。例如:
    kubectl get pod pod1
    kubectl get pod pod2
    kubectl get pod pod3
    
  3. NAME:指定资源的名称,名称也大小写敏感的。如果省略名称,则会显示所有的资源,例如:
    kubectl get pods
    
  4. flags:指定可选的参数。例如,可用-s 或者–server 参数指定 Kubernetes APIserver 的地址和端口。

在这里插入图片描述

帮助命令(kubectl --help)

查看全部的命令

kubectl --help

查看具体某个操作的命令

kubectl get --help

kubectl 子命令使用分类

基础命令

基础命令create通过文件名或标准输入创建资源
expose将一个资源公开为一个新的Service
run在集群中运行一个特定的镜像
set在对象上设置特定的功能
get显示一个或多个资源
explain文档参考资料
edit使用默认的编辑器编辑一个资源。
delete通过文件名、标准输入、资源名称或标签选择器来删除资源。

部署命令

部署命令rollout管理资源的发布
rolling-update对给定的复制控制器滚动更新
scale扩容或缩容Pod数量,Deployment、ReplicaSet、RC或Job
autoscale创建一个自动选择扩容或缩容并设置Pod数量

集群管理命令

集群管理命令certificate修改证书资源
cluster-info显示集群信息
top显示资源(CPU/Memory/Storage)使用。需要Heapster运行
cordon标记节点不可调度
uncordon标记节点可调度
drain驱逐节点上的应用,准备下线维护
taint修改节点taint标记

故障和调试命令

故障和调试命令describe显示特定资源或资源组的详细信息
logs在一个Pod中打印一个容器日志。如果Pod只有一个容器,容器名称是可选的
attach附加到一个运行的容器
exec执行命令到容器
port-forward转发一个或多个本地端口到一个pod
proxy运行一个proxy到Kubernetes API server
cp拷贝文件或目录到容器中
auth检查授权

设置命令

设置命令label更新资源上的标签
annotate更新资源上的注释
completion用于实现kubect1工具自动补全

其他命令

高级命令apply通过文件名或标准输入对资源应用配置
patch使用补丁修改、更新资源的字段
replace通过文件名或标准输入替换一个资源
convert不同的API版本之间转换配置文件
其他命令api-versions打印受支持的API版本
config修改kubeconfig文件(用于访问APl,比如配置认证信息)
help所有命令帮助
plugin运行一个命令行插件
version打印客户端和服务版本信息

之前使用的一些命令

在这里插入图片描述

资源编排(yaml)

k8s 集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到 YAML 格式文件中,

yaml文件

yaml文件简单说明

YAML 基本语法

  • 使用空格做为缩进
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • 低版本缩进时不允许使用 Tab 键,只允许使用空格
  • 使用#标识注释,从这个字符一直到行尾,都会被解释器忽略
  • 使用—表示新的yaml文件开始
  • 通过缩进表示层级关系

YAML 支持的数据结构

  • 对象:键值对的集合,又称为映射(mapping) / 哈希(hashes) / 字典(dictionary
    对象类型:对象的一组键值对,使用冒号结构表示
    格式1

    Person:
      name: Tom
      age: 17
    

    格式2:行内表示法

    Person: {mame: Tome, age: 17}
    
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表 (list)
    数组类型:一组连词线开头的行,构成一个数组
    格式1

    Person
    - Tome
    - Jack
    

    格式2:行内表示法

    Person: [Tom, Jack]
    
  • 等。。。

k8s如何快速生成yaml文件

方式1:使用kubectl create命令生成yaml文件

不做真正的运行,只是将yaml内容生成输出,加上后面的这个参数即可: --dry-run

kubectl create xxx -o yaml --dry-run

如:下面去创建一个deployment的资源,名称为web,在这个yaml文件中添加nginx的镜像内容

kubectl create deployment web --image=nginx -o yaml --dry-run

运行后,便会将yaml文件内容展示到控制台
在这里插入图片描述

将生成的yaml文件输出到文件中,在其后面加上 > my1.yaml
在这里插入图片描述

方式2:使用kubectl get命令导出yaml文件

适用于部署好的项目,将部署好的项目生成yaml文件
将xxx这个部署好的项目,将其相关的内容导出为yaml文件,导出到xx2.yml文件

kubectl get deploy xxx -o=yaml --export > xx2.yaml

比如:将之前部署好的nginx生成yaml文件

kubectl get deploy nginx -o=yaml --export > my2.yaml

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

?abc!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值