当前位置:首页 > 技术文章 > 正文内容

K8s配置--YAML文件

arlanguage4个月前 (01-11)技术文章31

K8s配置–YAML文件

我们和k8s交互的方式有2种:

  1. kubectl命令。
  2. YAML文件。

k8s建议使用声明式操作。更适合精细化处理的场景。告诉k8s的某个资源对象,我们期望它达到的状态,用kubectl apply 命令让k8s读取文件,还会自动把资源对象的当前状态修改成期望的状态。

说到声明式就对应命令式。直接下达命令,比如创建,删除某个资源对象。如果有并发,多人一起操作,就有可能出错。因为没有操作记录。

YAML文件

所以,k8s最常用的声明式文件类型是YAML文件。

优势

  1. 数据结构:支持复杂的数据结构。如:列表 字典。可以在一个文件里定义多个相互关联的资源对象。
  2. 文本格式: 纯文本格式,方便编辑,存储,也便于版本管理。
  3. 可重用: 可以在不同的环境(开发,生产) 声明不同的YAML文件。

语法

说了这么多好处,YAML文件到底怎么写呢?

缩进

它有点像Python 是靠缩进来表示数据的层级关系。每个层级缩进是2个空格。

pkey:
  ckey:value

注释

单行注释:也和Python一样 # 。

多行:— 三个横杠。

基础数据类型

如:整形,浮点数,Bool值,Null,字符串(除非包含特殊字符串,一般不用引号),等

列表

(-)表示列表元素,新起一行。

list_key:
- item1
- item2
- sub_list:
  - sub_item1
  - sub_item2

K-V 键值对

key:value 使用(:)和空格进行分隔。

key 是字符串,value 支持基础数据类型,也支持复合类型。


k8s资源对象的yaml文件一般都会有这些常用key

  • apiVersion: api版本,控制k8s用哪个api模式来解析文件。
  • kind:资源对象的类型,Pod, Service, Deployment之类的。
  • metadata: 一些基本信息, 名称,命名空间,标签,注解之类的。
  • spec:资源对象期望状态及特殊属性,像镜像,端口,PV之类的。



示例:

# nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
  labels:
    app: nginx
spec:
  containers:
    - name: nginx-container
      image: nginx:latest # latest表示使用镜像的最新版本
      ports:
        - containerPort: 80

可以通过“kubectl create” 命令创建 Deployment 的 YAML 文件模板。

kubectl create deployment my-nginx-deploy --image=nginx --dry-run=client -o yaml > my-nginx-deploy.yaml

使用YAML文件

编写完,怎么用呢?

在用yaml之前 可以先验证一下,看看文件是否有错。

kubectl apply -f--dry-run <YAML文件名>

如果没有问题才使用。

kubectl apply -f <YAML文件名>

删除YAML文件中所 部署的全部资源对象。

kubectl delete -f <YAML文件名>

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/761.html

标签: nginx sub
分享给朋友:

“K8s配置--YAML文件” 的相关文章

从入门到精通nginx——Nginx命令

Nginx命令查看命令选项:nginx -h启动命令:nginx -c file停止命令:nginx -s stop/quit平滑重启命令:nginx -s reload测试配置文件命令:nginx -tq??nginx -t:测试配置文件是否正确,默认只测试默认的配置文件conf/nginx.co...

Nginx配置跳转HTTPS方法汇总教程

Nginx 配置跳转到 HTTPS 的详细教程 ?在现代网络环境中,HTTPS 已成为保障网站安全的基本要求。通过 Nginx 配置将 HTTP 请求自动跳转到 HTTPS,不仅提升了网站的安全性,还能改善用户体验。本文将详细介绍在 Nginx 中实现 HTTP 到 HTTPS 跳转的两种常用方法,...

K8S中Service使用nginx控制器实现Ingress负载均衡器的一个Demo

写在前面学习K8s中Service遇到,单独整理分享给小伙伴本文内容涉及:ingress-nginx-controller的创建基于ingress-nginx-controller的Ingress的创建基于Ingress的服务发布,SVC负载时间关系,关于Ingresshttp路由负载本文没有涉及部...

基于Docker一键LNMP(Nginx+MySQL+PHP7/5+Redis)安装程序

一键部署LNMP环境的目的,该环境特点:完全开源支持多版本PHP切换(PHP5.4、PHP5.6、PHP7.2...)支持绑定任意多个域名支持HTTPS和HTTP/2PHP源代码位于host中MySQL data位于host中所有配置文件可在host中直接修改所有日志文件可在host中直接查看内置完...

「网络」运维需要掌握的 17 个实用技巧

1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录find . -name “*.tar” -execmv {}./backup/ ;注解:find –name 主要用于查找某个文件名字,-exec 、xargs可以用来承接前面的结果,然后将要执行的动作,一般跟find在一起用的很多,fi...

为什么服务器管理用户都使用宝塔面板?

宝塔面板宝塔面板到底是个什么鬼?为什么这么多站长使用宝塔面板?宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。有30个人的专业团队研发及维护,经过200多个版本的迭代,功能全,少出错且足够安全,已获得...