天天看點

如何在 Kubernetes 叢集上部署應用

如何在 Kubernetes 叢集上部署應用

鏡像下載下傳、域名解析、時間同步請點選

阿裡巴巴開源鏡像站

前言

本文中,我們将一起學習如何在叢集中部署一個簡單的應用。

我們可以通過設定k8s的部署配置,來控制k8s如何建立和更新你的應用執行個體,一但部署設定建立好,叢集主節點就會根據你的配置來排程應用執行個體,部署在叢集的各個節點上。

部署完成後,k8s會繼續監控應用執行個體在各個節點的運作狀态,一但出現當機、被删除等情況,k8s會在叢集其他節點上建立新的應用執行個體,來滿足你的部署配置設定。這也是不同于以往部署方式的地方,利用k8s部署應用,可以幫你提高系統的高可用性。

準備鏡像

首先我們需要準備一個應用鏡像,因為k8s上部署的應用需要是容器化的。

可以直接使用我建構好的

registry.cn-hangzhou.aliyuncs.com/larswang/hello-node:1.0

鏡像,跳過本段落,直接看 建立Deployment 。

也可以參考下面的方式 建構自己的鏡像。

下面我們就用docker建立一個簡單的NodeJS服務鏡像。(如果還沒安裝docker的朋友可以使用阿裡雲鏡像源

下載下傳安裝

)。

代碼準備

可以直接使用

hello-node

代碼倉庫的内容

server.js

var http = require('http');

var handleRequest = function(request, response) {
  console.log('Received request for URL: ' + request.url);
  response.writeHead(200);
  response.end('Hello World!');
};
var www = http.createServer(handleRequest);
www.listen(8080);           

Dockerfile

FROM node:6.14.2
EXPOSE 8080
COPY server.js .
CMD [ "node", "server.js" ]           

建構鏡像

我使用的是阿裡雲的鏡像倉庫:

立即通路

建立鏡像倉庫

如何在 Kubernetes 叢集上部署應用

關聯源代碼

如何在 Kubernetes 叢集上部署應用

立即建構

如何在 Kubernetes 叢集上部署應用

建構成功

如何在 Kubernetes 叢集上部署應用

本地拉取

docker pull registry.cn-hangzhou.aliyuncs.com/larswang/hello-node:1.0
docker run --name node-test -p 8080:8080 -d registry.cn-hangzhou.aliyuncs.com/larswang/hello-node:1.0           

本地通路:

http://localhost:8080/

,可以看到Hello World!輸出。說明鏡像建構OK。

Deployment

Deployment是用來部署無狀态應用的,即描述無狀态應用叢集狀态,比如設定部署5個副本,當其中某個副本當機時,會自動擴容至5個副本。

kubectl create deployment hello-node --image=registry.cn-hangzhou.aliyuncs.com/larswang/hello-node:1.0           

檢視deployment

kubectl get deployments           

檢視pod

kubectl get pods           
如何在 Kubernetes 叢集上部署應用

Service

預設Pod 隻能通過 Kubernetes 叢集中的内部 IP 位址通路, 為了能在Kubernetes 虛拟網絡的外部通路,需要将 Pod 暴露為 Kubernetes Service。

kubectl expose deployment hello-node --type=LoadBalancer --port=8080           

通過LoadBalancer類型的方式将叢集服務的8080端口暴露出去。

檢視Services

kubectl get services           
如何在 Kubernetes 叢集上部署應用

通路Service

minikube service hello-node           
如何在 Kubernetes 叢集上部署應用

浏覽器會自動打開

http://127.0.0.1:51284

,顯示Hello World!

清理

可通過如下指令清理叢集中建立的資源。

kubectl delete service hello-node
kubectl delete deployment hello-node           

總結

本文我們介紹了如何建立一個遠端鏡像,并通過指令行的方式使用鏡像部署服務。

來源:

AloofJr
提供全面,高效和穩定的鏡像下載下傳服務。釘釘搜尋 ' 21746399 ‘ 加入鏡像站官方使用者交流群。”

繼續閱讀