设为首页 收藏本站
查看: 1322|回复: 0

[经验分享] Kubernetes资源创建yml语法

[复制链接]

尚未签到

发表于 2018-1-4 19:27:53 | 显示全部楼层 |阅读模式
前言
  在是用kubernetes中,我们对资源的创建大部分都是通过
kubelet create -f RESOURCE.yaml  刚开看的时候不免有一些迷茫,看不懂语法,不知道怎么写;今天本文就介绍一下kubernetes construct语法。
  Construct语法其实就是由kubelet格式化成API的post data,提交给apiserver,因此这里支持yaml,json两种数据结构的文件。
Pod资源
apiVersion: v1 指定api版本,此值必须在kubectl apiversion中kind: Pod 指定创建资源的角色/类型metadata: 资源的元数据/属性name: test 资源的名字,在同一个namespace中必须唯一labels: 设定资源的标签sex: boy 标签以key/value的结构存在age: 18spec: #specification of the resource content 指定该资源的内容restartPolicy: Never 表明改容器仅仅运行一次,默认k8s的策略,在此容器退出后,会立即创建一个相同的容器volumes: 定义一组挂载设备- name: volume 定义一个挂载设备的名字hostPath: /data/www/html 挂载设备类型为hostPath,路径为宿主机下的/data/www/html,这里设备类型支持很多种containers: 指定资源中的容器- name: container1 容器的名字image: “docker.coocla.org/ubuntu:last” 容器使用的镜像地址volumeMounts:- mountPath: /mnt 挂载到容器的某个路径下name: volume 挂载设备的名字,与volumes
  • .name 需要对应livenessProbe: 容器健康监测httpGet: http形式监测,返回200-399之间,则认为容器正常path: /healthport: 8080initialDelaySeconds: 15 表明第一次检测在容器启动后多长时间后开始timeoutSeconds: 1 检测的超时时间env: 指定容器中的环境变量- name: str 变量的名字value: "hello world” 变量的值command: ["/bin/bash", "-c"] 覆盖容器中的Entrypoint,对应Dockefile中的ENTRYPOINTargs: ["/bin/echo", "$(str)"] 对应Dockerfile中CMD参数  健康监测还支持另外一种方法:
    exec: 执行命令的方法进行监测,如果其退出码不为0,则认为容器正常command:- cat- /tmp/healthinitialDelaySeconds: 15timeoutSeconds: 1ReplicationController的语法参数
    apiVersion: v1kind: ReplicationControllermetadata:name: nginxspec:replicas: 2 指定rc中pod的个数template: 指定rc中pod的模板,rc中的pod都是按照这个模板来创建的metadata: 指定rc中pod的元数据,注意这里不需要在指定pod的名字,它由rc复制生成labels:app: nginxspec:container:- name: nginximage: nginxService
    apiVersion: v1kind: Servicemetadata:name: nginxsvclabels:app: nginxspec: 指定Service中的内容ports: 映射列表- port: 80 service的端口porotocal: TCP 映射的协议类型,支持TCP/UDPtargetPort: 80 映射到pod的端口name: www.baidu.com 该映射的名字selector: 匹配器port: 80app: nginx 匹配label中app为nginx,port为80的podSecret
    apiVersion: v1kind: Secretmetadata:name: mysecrettype: 0paque 定义secret的类型,这里支持三种类型password: xxx|base64 以key/value的形式定义,value需要经过base64编码才可以,在secret被挂载到container中后,会以key作为文件名,value的值经过base64解码作为内容,以文件的形式存在于container中username: xxx|base64 ---type: kubernetes.io/service-account-token 第二种secret类型,用作创建服务账号的token,用作进程间通信的认证 ---type: kubernetes.io/dockercfg 第三种secret类型,用作在创建container,对docker registry的认证data:.dockercfg: `cat ~/.dockercfg | base64`  以上为部分资源参数,当然还有更多的参数可以指定,及更多的资源可以通过定义construct来创建。

  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431645-1-1.html 上篇帖子: Kubernetes:理解资源的概念 下篇帖子: Kubernetes 中的pv和pvc
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表