K8S 快速入门(九)实战篇:指令部署、yaml方式部署

您所在的位置:网站首页 apollo客户端添加yml文件 K8S 快速入门(九)实战篇:指令部署、yaml方式部署

K8S 快速入门(九)实战篇:指令部署、yaml方式部署

2023-08-17 04:49| 来源: 网络整理| 查看: 265

一、k8s资源指令 1. 常用命令 # 查看k8s帮助文档 ----- 查询所有的指令 kubectl --help # 查询节点信息(状态) kubectl get node #查询集群节点的信息 kubectl get node -o wide #查询节点的详细信息 kubectl get nodes #注意:查询节点信息,Status:Ready 表示集群节点运行ok。 # 查询pod(k8s最小的操作单元)对象指令 kubectl get pod #查询pod信息,没有指定命令空间,默认查询的命名空间是 default, #注意:kube-system 系统命名空间,此空间内运行的是k8s系统所需的pod.(scheduler,etcd,apiserver..) kubectl get pod -o wide #查询pod的详细信息 kubectl get pod -o wide -n kube-system #查询指定命名空间下的pod,pod是通过命名空间进行隔离。 kubectl get pods kubectl describe pod [pod名称] #查看pod详情 kubectl delete pod [pod名称] # 删除pod: kubectl delete pod --all # 删除所有pod: # 查询 ReplicaSet -- 副本控制器对象 kubectl get rs kubectl get rs -o wide # 查询 Deployment -- 查询部署对象 kubectl get deployment kubectl get deployment -o wide kubectl get deployments kubectl delete deployment [Deployment名称] # 查询service kubectl get svc kubectl get svc -o wide # 创建且运行一个pod,my-nginx是deployment的name kubectl run my-nginx --image=nginx --port=80 #deployment、rs、pod被自动创建 # 增加创建副本数量 kubectl scale deployment/my-nginx --replicas=3 #设置副本数量为3 # 另一种写法: kubectl scale deployment my-nginx --replicas=3 #添加service kubectl expose deployment my-nginx --port=3000 --target-port=80 kubectl edit svc my-nginx #编辑service服务的yaml配置文件 kubectl delete service [service名称] # 查询某个容器的日志 kubectl log deploymentName -c containName 2. 命令手册

kubenetes命令手册,详情请查询下表:

类型命令描述基础命令create通过文件名或标准输入创建资源ecpose将一个资源公开为一个新的Servicerun在集群中运行一个特定的镜像set在对象上设置特定的功能get显示一个或多个资源explain文档参考资料edit使用默认的编辑器编辑一个资源delete通过文件名,标准输入,资源名称或者标签选择器来删除资源部署命令rollout管理资源的发布rolling-update对给定的复制控制器滚动更新scale扩容会缩容Pod数量,Deployment,ReplicaSet,RC或Jobautoscale创建一个自动选择扩容或缩容并设置Pod数量集群管理命令certificate修改证书资源cluster-info显示集群信息top显示资源(CPU/Memory/Storage)使用,需要Heapster运行cordon标记节点不可调uncordon标记节点可调度drain驱逐节点上的应用,准备下线维护taint修改节点taint标记故障诊断和调试命令describe显示特定资源或资源组的详细信息logs在一个Pod中打印一个容器日志,如果Pod只有一个容器,容器名称是可选的attach附加到一个运行的容器exec执行命令到容器port-forward转发一个或多个本地端口到一个podproxy运行一个proxy到Kubernetes API servercp拷贝文件或者目录到容器中auth检查授权高级命令apply通过文件名或标准输入对资源应用配置patch使用补丁修改,更新资源的字段replace通过文件名或标准输入替换一个资源convert不同的API版本之间转换配置文件设置命令label更新资源上的标签annotate更新资源上的注释completion用于实现kubectl工具自动补全其他命令api-versions打印受支持的API 版本config修改kubeconfig文件(用于访问API,比如配置认证信息)help所有命令帮助plugin运行一个命令插件version打印客户端和服务版本信息 二、资源清单 1. YAML语法规范

YAML是专注于写配置文件的语言,这个名字的含义是YAML Ain’t Markup Language(YAML不是一种标记语言),但是实际上YAML还是一种标记语言,只不过是更加聚焦于数据的标记语言。参考了YAML官网

YAML的基本语法规则

1.大小写敏感2.使用缩进表示层级关系(这个和Python很像了,估计是从Python借鉴的) 缩进时绝对不允许使用Tab键,只允许使用空格键 缩进的空格数不重要,只要元素左侧能对齐就可以。 字符串可以不用引号标注

YAML完全兼容Json的语法,可以把Json看做是YAML的一个子集

我们来看一下YAML支持的数据类型

对象:就是键值对的集合,和Json中对象的概念一样列表:又称为序列,是一组有序排列的值,和Json中列表的概念一样scalars(纯量):不可拆分的数据类型,和Json中的基本数据类型一样

来看一下YAML具体的语法。

在一个yml文件中,使用---来表示一段文档(或者一组配置)的开始,使用...来表示一段文档的结束。如果yml中只有一组配置,则可以省略掉---.

使用#来表示注解

使用-来表示单个的列表项,比如

- A - B - C

对应Json中的[ 'A', 'B', 'C' ]

- - A - B - C - - D - E - F

对应于Json的[ [ 'A', 'B', 'C' ], [ 'D', 'E', 'F' ] ]

尤其是要注意,由于YAML兼容Json的语法,所以我们直接在yml文件中写[ [ A, B, C ], [ D, E, F ] ]也是可以的。

使用:来表示键值对

name: chico age: 18

对应Json的{ name: 'chico', age: 18 }

- name: chico age: 18 - name: dong age: 19

对应Json中的[ { name: 'chico', age: 18 }, { name: 'dong', age: 19 } ]

看一个将列表和对象结合起来的

american: - Boston Red Sox - Detroit Tigers - New York Yankees national: - New York Mets - Chicago Cubs - Atlanta Braves

对应Json { american: [ 'Boston Red Sox', 'Detroit Tigers', 'New York Yankees' ], national: [ 'New York Mets', 'Chicago Cubs', 'Atlanta Braves' ] }

与Json不同的是,YAML中键值对的键不要求一定是字符串,可以是一些复杂的类型,但是Json中要求键值对的键必须是字符串。

当YAML中键值对的键是复杂类型的时候,必须要用?说明,比如

?[a,b,c]:color #或者 ?-a -b -c :color

YAML中null用~表示 比如money:~

YAML中段落用|和缩进表示,YAML会保留该段落中的回车换行符,比如

description: | #注意:和 |之间的空格 这是一篇非常非常长的介绍YAML的文章 文章是非常有内容的

YAML中用>和缩进表示把段落连城一句话,YAML会把该段落中的回车换行替换成空格,最终连成一句话

description: > 这是一篇介绍YAML的文章,非常长 但是把他们连成一句话了

YAML中+表示保留段落末尾的换行,-表示删除文本末尾的换行

a: |+ 保留了换行符 b: |- 删除了换行符

YAML中也会把"双引号和'单引号中的字符串连成一行,引号中可以包含转义字符 单引号:会转义特殊字符,特殊字符终只是一个普通的字符串数据 双引号:不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思

description: "虽然表面上看这是两行, 但其实是一行" #和下面这个是一样的 description: 虽然表面上看这是两行, 但其实是一行

YAML中使用!和!!来做强制类型转换,比如

#强行把123转换成str e:!!str 123 #强行把boolean型转换为str b:!!str true

YAML中可以通过&来锚点,通过*来引用

s1: name: chico favourite: &SS reading s2: name: dong favourite: *SS



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3