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