• 地址:广州市天河区华南植物园-龙洞慧创百思G220
  • 免费热线 : 020-87581205
  • 电子邮箱 : sw@51mimu.com

使用yaml文件创建应用比对_容器服务swarm集群与Kubernetes集群的主要功能比对_Swarm迁移Kubernetes_最佳实践_容器服务Kubernetes版-阿里云

 知识中心     |      2020-05-13 12:18:07

使用yaml文件创建应用比对

更新时间:2020-03-02 10:13:17

编辑 我的收藏

新浪微博 微信 钉钉

本页目录

本文介绍容器服务Swarm集群与Kubernetes集群使用yaml文件创建应用时,Swarm集群下的yaml文件与Kubernetes集群下的yaml文件的对应关系。

背景信息

在使用yaml文件创建应用时,Swarm集群与Kubernetes集群的yaml文件格式不一样:

本文将基于容器服务Swarm的yaml文件,介绍Kubernetes的yaml文件如何与之对应。文章中的yaml示例,仅作为示例,具体部署请依据具体情况添加及修改相关内容。

容器服务Swarm与Kubernetes集群的yaml文件比对

容器服务Swarm集群

容器服务Swarm集群的yaml文件wordpress-swarm.yaml如下,注释中的阿拉伯数字与容器服务Kubernetes集群的yaml文件的注释对应。

web:        #---1
  image: registry.aliyuncs.com/acs-sample/wordpress:4.5        #---2
  ports:        #---3
    - '80'
  environment:        #---4
    WORDPRESS_AUTH_KEY: changeme            #---5
    WORDPRESS_SECURE_AUTH_KEY: changeme        #---5
    WORDPRESS_LOGGED_IN_KEY: changeme        #---5
    WORDPRESS_NONCE_KEY: changeme            #---5
    WORDPRESS_AUTH_SALT: changeme            #---5
    WORDPRESS_SECURE_AUTH_SALT: changeme        #---5
    WORDPRESS_LOGGED_IN_SALT: changeme        #---5
    WORDPRESS_NONCE_SALT: changeme            #---5
    WORDPRESS_NONCE_AA: changeme            #---5
  restart: always        #---6
  links:            #---7
    - 'db:mysql'
  labels:            #---8
    aliyun.logs: /var/log        #---9
    aliyun.probe.url: http://container/license.txt        #---10
    aliyun.probe.initial_delay_seconds: '10'            #---10
    aliyun.routing.port_80: http://wordpress            #---11
    aliyun.scale: '3'                            #---12
db:             #---1
  image: registry.aliyuncs.com/acs-sample/mysql:5.7        #---2
  environment:        #---4
    MYSQL_ROOT_PASSWORD: password        #---5
  restart: always        #---6
  labels:        #---8
    aliyun.logs: /var/log/mysql        #---9

容器服务Kubernetes集群

通过容器服务Swarm集群的wordpress-swarm.yaml文件部署的wordpress应用,在容器服务Kubernetes集群中对应2个服务:web和db。

在容器服务Kubernetes集群上需要2个部署(deployment)和2个服务(service)。2个Deployment创建2个Service,2个服务分别暴露2个应用的访问方式。

容器服务Swarm集群中的web应用对应Kubernetes集群的deployment和service如下:

说明 以下yaml文件的内容仅作为示例说明与容器服务Swarm集群wordpress-swarm.yaml的对应关系,不可用作实际部署。

  • wordpress-kubernetes-web-deployment.yaml内容如下:
    apiVersion: apps/v1     # api版本
    kind: Deployment        # 创建资源的类型
    metadata:
      name: wordpress      #---1 
      labels:            #---8 在这里的label只能做标识作用
        app: wordpress
    spec:    #资源创建详细内容
      replicas: 2        #---12 设定实例(副本)个数
      selector:  
        matchLabels:
          app: wordpress
          tier: frontend
    strategy:
    type: Recreate
      template:   #模板定义POD的详细信息
        metadata:
          labels:  #与前面保持一致
            app: wordpress
            tier: frontend
        spec:    #定义pod中container的详细信息
          containers:    #
          - image: wordpress:4   #---2  对应于镜像及版本
            name: wordpress
            env:    #---4 环境变量设置,kubernetes上configmap,secret都可以通过env的方式使用
            - name: WORDPRESS_DB_HOST
              value: wordpress-mysql  #---7 通过名称指向需要访问的mysql,该名称与mysql service的名称相对应。
            - name: WORDPRESS_DB_PASSWORD    #---5 密码在这里使用,但kubernetes提供了secret进行密码封装
              valueFrom:
                secretKeyRef:
                  name: mysql-pass
                  key: password-wordpress
            ports:   #---3 容器内应用暴露的port
            - containerPort: 80
              name: wordpress
    livenessProbe:        #add health check    ---10 健康检查
              httpGet:
                path: /
                port: 8080
              initialDelaySeconds: 30
              timeoutSeconds: 5
              periodSeconds: 5
            readinessProbe:       #add health check       ---10 健康检查
              httpGet:
                path: /
                port: 8080
              initialDelaySeconds: 5
              timeoutSeconds: 1
              periodSeconds: 5
            volumeMounts:  #使用存储卷,将存储卷真正挂到容器内部
            - name: wordpress-pvc
              mountPath: /var/www/html
          volumes:   #获取存储卷,需先进行PV和PVC的创建
          - name: wordpress-pvc
            persistentVolumeClaim:
              claimName: wordpress-pv-claim
  • wordpress-kubernetes-web-service.yaml内容如下:
    apiVersion: v1   #版本号
    kind: Service    #创建资源类型,在这里为service
    metadata:
      name: wordpress
      labels:
        app: wordpress
    spec:
      ports:
        - port: 80   #服务端口号
      selector:  #通过label进行应用的关联
        app: wordpress
        tier: frontend
      type: LoadBalancer  #---11 定义访问方式,此处为LoadBalancer类型的service,会自动创建SLB

容器服务Swarm集群中的db应用对应Kubernetes集群的deployment和service如下:

说明 以下yaml文件的内容仅作为示例说明与容器服务Swarm集群wordpress-swarm.yaml的对应关系,不可用作实际部署。

  • wordpress-kubernetes-db-deployment.yaml内容如下:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: wordpress-mysql
      labels:
        app: wordpress
    spec:
      selector:
        matchLabels:
          app: wordpress
          tier: mysql
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            app: wordpress
            tier: mysql
        spec:
          containers:
          - image: mysql:5.6
            name: mysql
            env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql-pass
                  key: password-mysql
            ports:
            - containerPort: 3306
              name: mysql
            volumeMounts:
            - name: wordpress-mysql-pvc
              mountPath: /var/lib/mysql
          volumes:
          - name: wordpress-mysql-pvc
            persistentVolumeClaim:
              claimName: wordpress-mysql-pv-claim
  • wordpress-kubernetes-db-service.yaml内容如下:
    apiVersion: v1
    kind: Service
    metadata:
      name: wordpress-mysql
      labels:
        app: wordpress
    spec:
      ports:
        - port: 3306
      selector:
        app: wordpress
        tier: mysql
          clusterIP: None

上一篇:使用镜像创建应用-健康检查及自动伸缩比对

下一篇:网络比对

相关文档

相关产品

  • 容器服务Kubernetes版

    容器服务Kubernetes版(Container Service for Kubernetes)提供高性能可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。

  • 容器服务(已停止服务)

    容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大地简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造 Docker 云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。

  • 容器镜像服务

    容器镜像服务(Container Registry)提供安全的应用镜像托管能力,精确的镜像安全扫描功能,稳定的国内外镜像构建服务,便捷的镜像授权功能,方便用户进行镜像全生命周期管理。容器镜像服务简化了Registry的搭建运维工作,支持多地域的镜像托管,并联合容器服务等云产品,打造云上使用Docker的一体化体验。

以上内容是否对您有帮助?

在文档使用中是否遇到以下问题

  • 内容错误

  • 更新不及时

  • 链接错误

  • 缺少代码/图片示例

  • 太简单/步骤待完善

  • 其他

  • 内容错误

  • 更新不及时

  • 链接错误

  • 缺少代码/图片示例

  • 太简单/步骤待完善

  • 其他

更多建议

匿名提交

感谢您的打分,是否有意见建议想告诉我们?

感谢您的反馈,反馈我们已经收到

文档反馈


COPYRIGHT © 2018-2019,WWW.51MIMU.COM,ALL RIGHTS RESERVED版权所有 © 广州米姆信息科技有限公司(阿里云、腾讯云代理商) 粤ICP备18145377号

sitemap feed