Leo Yeh's Blog

SAS Viya (79)

教學目標

初步了解在 Kubernetes 容器平台上部署 SAS Viya 平台的基本概念。

重點概念

首先雲原生的平台設計已經是目前主流部署,並且許多企業已經開始投資建置 Kubernetes 容器平台雲原生的部署環境,更進一步企業 IT 將成為業務組織的服務提供商,而在這樣的趨勢下,我們將能夠在 Kubernetes 容器平台上部署 SAS Viya 平台,而部署主要有三個階段,分別為:

  1. 建立階段 (Build):建立 Docker 映像檔和 Kubernetes 設定檔。
  2. 啟動階段 (Launch):在 Kubernetes 平台啟動 SAS Viya 平台。
  3. 設定階段 (Configure):設定 Kubernetes 平台中的 SAS Viya 平台。

其中建立階段主要需要手動產生 SAS Viya 映像檔和啟動 Docker 儲存庫,啟動階段主要需要 Kubernetes 平台環境透過 Kubernetes 設定檔從 Docker 儲存庫中拉入 SAS Viya 映像檔啟動 SAS Viya 平台,請注意啟動階段僅能夠透過 sasboot 管理者帳號登入操作 SAS Viya 平台,設定階段主要針對 LDAP 身份驗證和共享儲存空間進行相關設定,此階段通常需要花費較多時間,但是完成設定階段才能夠讓每位使用者登入個別帳號操作 SAS Viya 平台。

接著我們針對不同的作業系統和容器平台有不同的部署方式,其中 Windows 作業系統和 Docker 容器平台目前還不支援多台機器和分散式架構的部署,此外 Docker 容器平台目前也僅支援程式部署,若要完整部署則必需要透過 Linux 作業系統、Windows 作業系統和 Kubernetes 容器平台進行 SAS Viya 平台的完整部署。

不同作業系統和平台部署比較表

Full Deployment Programming-Only Deployment SMP CAS MPP CAS Single Machine Multi Machine On-Premise On-Cloud
Linux Y Y Y Y Y Y Y Y
Windows Y Y Y N Y N Y Y
Docker N Y Y N Y N Y Y
Kubernetes Y Y Y Y Y Y Y Y

再來 Kubernetes 容器平台對外提供服務的方式目前主要有三種模式,分別為 Load Balancer 、Node Port 和 Ingress,其中所謂 Ingress 相當於 Apache 和 Nginx 等負載平衡代理伺服器,並且包括規則定義,也就是 URL 的路由資訊,主要皆由 Ingress Controller 進行監控管理,目前以 Traefik 為主,所謂 Traefix 主要是以 Go 語言開發的輕量級 HTTP 反向代理和負載平衡器,其主要能夠自動設定和更新後端節點,並且即時透過 Kubernetes API 了解容器中所有服務的節點變化,以利自動進行調整。

對外提供服務之 Ingress 定義檔範例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: sasviya-ingress
namespace: sasviya
spec:
rules:
- host: <DNS 解析網址>
http:
paths:
- backend:
serviceName: sas-viya-httpproxy
servicePort: 80
- host: <DNS 解析網址>
http:
paths:
- backend:
serviceName: sas-viya-httpproxy
servicePort: 443

最後 Kubernetes 容器平台監控與管理的方式目前主要有二種視覺化監控管理服務,分別為 Grafana 和 Weave Scope,透過 Grafana 服務將允許我們更了解 Kubernetes 容器平台的監控指標之外,更能夠透過 Weave Scope 自動檢測程序、容器和主機的關聯圖。所以當 SAS Viya 平台以容器的方式進行部署之外,我們將能夠透過 Kubernetes 容器平台強大的監控與管理服務提供可擴展性和高可用性的 SAS Viya 平台服務,但請注意目前 SAS Viya 3.4 版本中並非所有容器服務皆能夠彈性進行擴展,特別是 SAS Viya 核心服務。

相關資源

⬅️ Go back