Kubernetes(简称K8S) 是Google开源的分布式的容器管理平台,方便咱们在服务器集群中管理咱们容器化应用。html
教程主要介绍怎么使用阿里云容器服务(kubernetes版本)。node
经过上图能够看出k8s总体架构主要由左边的master节点和右边的worker组成,master节点负责对整个集群进行管理,右边的电脑表示worker节点负责运行咱们部署的容器。mysql
web
下面是经过阿里云容器服务后台以可视化的方式部署应用。sql
阿里云部署应用链接。数据库
https://help.aliyun.com/document_detail/87784.html?spm=a2c4g.11186623.6.631.6ca67d26RVHzA4api
在集群环境中,默认状况若是应用在容器A建立了一个文件,容器B没法读取这个文件。服务器
在k8s中提供了持久卷(Persistent Volumes)解决持久化存储问题,持久卷将存储细节和存储数据访问分离,对于用户而言使用同统一的接口访问不一样存储系统上的数据。网络
根据存储方式不一样,k8s支持多种持久卷(Persistent Volumes)类型,阿里云也对k8s进行一些扩展支持,目前支持NAS、OSS、云盘三种持久卷类型。架构
下面是关于阿里云支持的持久卷类型的介绍:
根据上面的介绍咱们能够选择NAS或者OSS实现共享文件数据,OSS主要用于图片,视频存储场景能够支持文件直接对外提供访问服务,在容器共享文件数据,咱们通常选择NAS, 下面是K8S使用NAS的教程:
https://help.aliyun.com/document_detail/88940.html?spm=a2c4g.11186623.6.680.18656b80CZtc9r
关于云盘,不能多个容器共享,每一个POD独占本身的云盘实例,适合用于为部署有状态应用提供持久化存储,例如部署mysql, 将mysql数据保存到云盘中。
提示:不管使用何种持久卷类型,最终都是以挂载的方式,关联到容器中。 对用户来说,最终看到的就是一个目录。
若是但愿一个镜像(image)更具备通用性,与环境无关,那么应该将环境相关的配置参数从镜像中分离出来。
举个例子:
咱们将一个web应用的代码打包到一个镜像中,若是web应用关于数据库的链接地址、账号、密码也一同打包到镜像中,那么若是咱们但愿这个镜像换一个数据库配置信息怎么办? 只能从新打包镜像。
k8s为咱们提供了两种配置管理的方式:configMap和secret。
他们都是键值对的形式,区别就是secret专门用于管理铭感信息配置,例如:密码。
不管使用那种方式管理配置,最终配置信息都须要注入到容器中。
目前有两种方式将配置信息注入到容器中:环境变量和挂载(mount)数据卷
下面是阿里云使用配置的例子:
首先是建立配置项:
接下来是配置注入到容器中,先看经过环境变量注入:
在阿里云后台新建应用或者编辑应用,都会出现下面的窗口
下面是经过挂载的方式注入配置信息:
一样是在新建应用或者编辑应用窗口中,设置数据卷。
阿里云后台操做详细说明链接:
https://help.aliyun.com/document_detail/86769.html?spm=a2c4g.11186623.6.671.667f142e1EUHo4