ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kubernetes-yaml文件

2022-06-12 23:00:16  阅读:185  来源: 互联网

标签:文件 kubernetes nginx -- yaml kubectl deployment root


转: k8s yaml

一、yaml文件简介

  • Kubernetes只支持YAML和JSON格式创建资源对象,JSON格式用于接口之间消息的传递,适用于开发

  • YAML格式用于配置和管理,适用于云平台管理,YAML是一种简洁的非标记性语言

  • yaml的语法格式:

缩进标识层级关系
不支持制表符缩进,使用空格缩进
通常开头缩进两个空格
字符后缩进一个空格, 如冒号,逗号,- 等
“—”表示YAML格式,一个文件的开始,用于分隔文件间。
“#”表示注释

二、使用YAML文件创建资源对象

1、查看资源版本标签

[root@master ~]# kubectl api-versions

在这里插入图片描述
2、例如:写一个yaml文件

[root@master ~]# mkdir demo
[root@master ~]# cd demo/
[root@master1 demo]# vim nginx-test.yaml
apiVersion: apps/v1      #指定api版本标签
kind: Deployment	    #定义资源的类型/角色,deployment为控制器
metadata:	           #定义资源的元数据信息
  name: nginx-test	  #定义资源的名称,在同一个namespace空间中必须是唯一的
  labels:	          #定义资源标签
    app: nginx	
spec:	     
  replicas: 3	       #定义副本数量
  selector:	           #定义选择器
    matchLabels:	   #匹配上面的标签
      app: nginx	   #匹配模板名称
  template:	           #定义模板
    metadata:	
      labels:
        app: nginx
    spec:
      containers:                #定义容器信息
      - name: nginx	             #容器名,与标签名要相同
        image: nginx:1.15.4      #容器使用的镜像以及版本
        ports:
        - containerPort: 80	    #定义容器的对外端口

3、创建资源对象

[root@master1 demo]# kubectl create -f nginx.yaml 
deployment.apps/nginx created

[root@master demo]# kubectl get pod	查看创建的pod资源
NAME                              READY   STATUS    RESTARTS   AGE
nginx-deployment-d55b94fd-df6wp   1/1     Running   0          84s
nginx-deployment-d55b94fd-j9mhz   1/1     Running   0          84s
nginx-deployment-d55b94fd-qzc8r   1/1     Running   0          84s

4、创建service服务对外提供访问并测试

[root@master1 demo]# vi nginx-service.yaml
apiVersion: v1  
kind: Service  
metadata:
  name: nginx-service
  labels:
    app: nginx  
spec:
  type: NodePort  
  ports:
  - port: 80
    targetPort: 80  
  selector:
    app: nginx
[root@master1 demo]# kubectl create -f nginx-service.yaml 
service/nginx-service created

[root@master1 demo]# kubectl get svc
NAME            TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.0.0.1     <none>        443/TCP        5d13h
nginx-service   NodePort    10.0.0.227   <none>        80:38425/TCP   14s

在浏览器输入node节点:端口即可访问。
在这里插入图片描述
使用命令快速生成YAML或者JSON文件
1、自动测试命令的正确性,并不执行创建(类似shell脚本中的sh -n)

[root@master1 demo]# kubectl run nginx-deployment --image=nginx --port=80 --replicas=3 --dry-run
kubectl run --generator=deployment/apps.v1beta1 is DEPRECATED and will be removed in a future version. Use kubectl create instead.
deployment.apps/nginx-deployment created (dry run)

2、自动生成yaml格式的文件不保存

#此命令直接生成yaml文件内容展示出来,并不会保存
[root@master ~]# kubectl run nginx-1 --image=nginx --port=80 --replicas=3 --dry-run -o yaml

在这里插入图片描述
3、自动生成json格式的文件

[root@master ~]# kubectl run nginx-2 --image=nginx --port=80 --replicas=3 --dry-run -o json

在这里插入图片描述
4、将生成YAML格式或者JSON格式文件导出

[root@master ~]# kubectl run nginx-1 --image=nginx --port=80 --replicas=3 --dry-run -o json(yaml) > test.json(yaml)

在这里插入图片描述
5、将现有的资源生成模板并导出

#可以用pod中的nginx来生成模板并导出
[root@master1 demo]# kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
nginx-deployment-d55b94fd-df6wp   1/1     Running   0          14m
nginx-deployment-d55b94fd-j9mhz   1/1     Running   0          14m
nginx-deployment-d55b94fd-qzc8r   1/1     Running   0          14m

[root@master1 demo]# kubectl get deployment/nginx-deployment --export -o yaml > nginx-backup.yaml
[root@master1 demo]# ls
nginx-backup.yaml  nginx-service.yaml  nginx.yaml

6、查看yaml文件某一字段的帮助信息

[root@master ~]# kubectl explain pods.spec.containers
 

标签:文件,kubernetes,nginx,--,yaml,kubectl,deployment,root
来源: https://www.cnblogs.com/colin88/p/16369188.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有