Akamai App Platform上手指南
Akamai App Platform(Akamai應(yīng)用平臺)已于最近正式推出!這是Akamai圍繞Linode Kubernetes Engine(LKE)提供的一鍵式擴展解決方案,可供用戶在使用Kubernetes時輕松添加以開發(fā)者和運維為中心的工具,從而實現(xiàn)自動化的自助服務(wù),借此簡化應(yīng)用程序的生命周期工作。簡單來說,Akamai App Platform能將Cloud Native Computing Foundation(CNCF,云原生計算基金會)所提倡的很多技術(shù)緊密連接在一起,為用戶提供直接價值。

延伸閱讀,點擊鏈接了解 Akamai Cloud Computing
本文將介紹使用Akamai App Platform配置LKE集群的步驟,以及如何在此基礎(chǔ)上構(gòu)建、部署并發(fā)布應(yīng)用。
使用Akamai App Platform配置Kubernetes集群
Akamai App Platform目前還處于Beta測試階段。在上手使用前,首先請登錄或注冊一個Akamai云計算賬戶,然后在Beta測試頁面注冊參加測試計劃。
加入測試計劃后,從左側(cè)導(dǎo)航菜單選擇Kubernetes,然后選擇Create Cluster(創(chuàng)建集群)。在隨后出現(xiàn)的Create a Kubernetes Cluster(創(chuàng)建Kubernetes集群)頁面設(shè)置下列選項:
- 在Cluster Label(集群標(biāo)簽)字段輸入集群名稱。該名稱在當(dāng)前賬戶下的所有群集中必須是唯一的,使用Cloud Manager儀表板時,我們需要通過該名稱來區(qū)分自己名下的不同集群。
- 從下拉菜單中選擇區(qū)域。
- 從下拉菜單中選擇要部署到集群的Kubernetes版本。
- 在App Platform for LKE選項下,選擇Yes, enable App Platform for LKE(是的,啟用App Platform for LKE)。
- 在Add Node Pools(添加節(jié)點池)選項下,選擇構(gòu)成LKE集群的Linode工作節(jié)點要使用的硬件資源。在Beta測試階段,App Platform for LKE要求節(jié)點池至少包含3個工作節(jié)點,每個節(jié)點至少有16 GB內(nèi)存。目前不支持使用共享CPU。
- 選擇Add(添加),將節(jié)點池納入配置。
- 將節(jié)點池添加到配置之后,該節(jié)點池將會顯示在Cloud Manager右側(cè)的Cluster Summary(集群摘要)中,其中還會詳細列出集群的硬件資源和每月成本。
- 如果對集群的配置滿意,請點擊右側(cè)的Create Cluster(創(chuàng)建集群)。隨后會顯示集群詳情頁以及節(jié)點池信息。
隨后將開始創(chuàng)建LKE集群,并在準(zhǔn)備就緒后自動安裝App Platform。App Platform for LKE安裝過程大約需要10到15分鐘。安裝完成后,Portal Endpoint(門戶端點)URL會顯示在集群詳情頁App Platform for LKE選項下。安裝進度會每60秒刷新一次。如果安裝仍在進行中,則不會顯示門戶端點URL,而是會顯示“安裝進行中”字樣。
當(dāng)LKE群集和App Platform均已就緒后,請單擊所顯示的門戶端點URL:

隨后將會看到如下圖所示的登錄頁面:

登錄前需要先準(zhǔn)備好初始憑據(jù)。請在集群詳情頁打開“省略號”選項菜單,然后選擇Download Kubeconfig(下載Kubeconfig)。該文件會保存到電腦的“下載”文件夾中。
隨后在電腦上打開終端Shell,運行如下命令將剛才下載的Kubeconfig文件的路徑保存到$KUBECONFIG環(huán)境變量中。在本例中,Kubeconfig文件位于Downloads文件夾里,不過大家可能需要根據(jù)實際情況修改具體路徑。
export KUBECONFIG=~/Downloads/kubeconfig.yaml接著執(zhí)行如下命令獲取用戶名:
kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.username}} | base64 -d并執(zhí)行如下命令獲取密碼:
kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.password}} | base64 -d接下來就可以使用上述憑證登錄控制臺并更改初始密碼了。
為App Platform配置對象存儲
登錄到控制臺后,我們首先需要配置對象存儲。系統(tǒng)會顯示一條消息,詢問是否讓App Platform為我們配置對象存儲。

對象存儲并非必須的,但強烈建議使用,因為這樣可防止在為集成的應(yīng)用程序使用存儲卷時出現(xiàn)磁盤空間不足的錯誤。使用對象存儲還能為平臺使用的所有數(shù)據(jù)庫和Git倉庫創(chuàng)建備份。
如果不想讓App Platform為我們配置對象存儲,請選擇Skip for Now(暫時跳過)。請注意,如果跳過該步驟,數(shù)據(jù)庫備份等功能將不可用。不過我們可以隨時在Maintenance(維護)選項下啟動一個向?qū)砼渲脤ο蟠鎯Α?/span>
- 單擊Yes(是)。
- 按照屏幕提示創(chuàng)建Personal Access Token(個人訪問令牌),請務(wù)必為Object Storage類別選擇Read/Write(讀/寫)權(quán)限。記得將API令牌信息復(fù)制出來。
- 將剛才復(fù)制的訪問令牌粘貼到向?qū)В⑦x擇要將存儲桶創(chuàng)建到哪個區(qū)域:

- 隨后單擊Submit(提交)。
- 隨后還需要在賬戶中創(chuàng)建需要的所有對象存儲桶和訪問密鑰,App Platform將使用這些存儲桶來存儲備份、日志、指標(biāo)、跟蹤結(jié)果和映像信息。我們提供的個人訪問令牌信息不會被存儲起來。創(chuàng)建好的存儲桶將采用類似lke<cluster-id>為前綴的命名方式。
- 啟用Harbor
- 對象存儲配置完成后,即可啟用構(gòu)成App Platform所需的所有應(yīng)用程序。下文將從源代碼構(gòu)建映像,因此需要啟用Harbor應(yīng)用程序,因為構(gòu)建自助服務(wù)的功能需要使用Harbor來存儲所有容器映像。
- 在左側(cè)菜單中單擊Apps(應(yīng)用程序)。
- 將鼠標(biāo)懸停在Harbor應(yīng)用程序上,單擊啟用按鈕。
- 在左上角單擊Deploy Changes(部署變更)。
- 隨后即可安裝并配置Harbor。
創(chuàng)建Team
接下來還需要創(chuàng)建一個Team。Team可以理解為平臺上的一個租戶,類似于一個可以充當(dāng)服務(wù)的命名空間。每個Team都可以有自己的成員,成員可以訪問控制臺,使用所有自助服務(wù)功能。我們將通過后續(xù)文章詳細介紹Team功能?,F(xiàn)在,先來創(chuàng)建一個Team:
- 在頁面頂部的View(視圖)中選擇Platform(平臺)。
- 單擊左側(cè)菜單中的Teams。
- 單擊Create Team(創(chuàng)建Team)。
- 為Team設(shè)置名稱。本例中我們使用“demo”作為名稱。請注意,Team名稱最多可包含12個字符,隨后創(chuàng)建的命名空間將以“team-<team-name>”為名。
- 跳過所有其他選項,然后單擊Submit(提交)。
- 單擊控制臺左上角的Deploy Changes(部署變更)。
創(chuàng)建倉庫
至此我們已經(jīng)創(chuàng)建了一個Team,隨后可以切換到Team視圖,然后添加成員。在Team視圖中,為名同樣可以在左側(cè)菜單中看到Apps選項,這一點與Platform視圖是一樣的。Team視圖中會顯示App Platform上所有Team的共享應(yīng)用,以及當(dāng)前Team的專用應(yīng)用。
所有成員都可以訪問Team中的應(yīng)用。因為我們要創(chuàng)建一個映像,因此首先要創(chuàng)建一個帶有簡單應(yīng)用的倉庫,例如使用Nginx展示HTML單頁:
- 點擊Gitea應(yīng)用程序。Gitea是App Platform上運行的自托管Git服務(wù),隨時可供我們使用。
- 選擇Sign In with OpenID(使用OpenID登錄):

- 選擇+ New Repository(新建倉庫):

- 為倉庫設(shè)置名稱,例如“demo”。
- 選擇Make Repository Private(設(shè)置為私有倉庫),然后選擇Initialize Repository(初始化倉庫)。
- 點擊Create Repository(創(chuàng)建倉庫)。
隨后可以在倉庫中添加一些代碼。我們將使用Nginx創(chuàng)建一個簡單的HTML單頁應(yīng)用程序。
為此可以創(chuàng)建一個包含以下內(nèi)容的demo.html文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Sample Deployment</title>
<style>
body {
color: #ffffff;
background-color: #0099cc;
font-family: Arial, sans-serif;
font-size: 14px;
}
h1 {
font-size: 500%;
font-weight: normal;
margin-bottom: 0;
}
h2 {
font-size: 200%;
font-weight: normal;
margin-bottom: 0;
}
.centered-text {
text-align: center;
}
</style>
</head>
<body>
<div class="centered-text">
<h1>Welcome to the App Platform</h1>
</div>
</body>
</html>并在Dockerfile文件中添加如下的內(nèi)容:
FROM nginxinc/nginx-unprivileged:stable
COPY demo.html /usr/share/nginx/html/index.html
EXPOSE 8080構(gòu)建、部署并發(fā)布應(yīng)用
接下來我們需要構(gòu)建、部署并發(fā)布應(yīng)用。針對這些工作,App Platform提供了一組自助服務(wù)表單。為名可以使用名為“Builds”的自助服務(wù)表單從源代碼構(gòu)建映像,使用Catalog中的快速入門Helm模板部署應(yīng)用程序,并使用“Services”自助服務(wù)表單發(fā)布應(yīng)用程序。
步驟1:構(gòu)建映像
- 在頂部的View中選擇Team。請注意:當(dāng)前我們是以平臺管理員身份登錄的,因此可以同時看到Platform和Team視圖。
- 單擊左側(cè)菜單中的Builds(構(gòu)建)。
- 單擊Create Build(創(chuàng)建構(gòu)建)。
- 為構(gòu)建添加名稱,本例將以“demo”為名。
- 使用(default) Docker Build模式,并添加剛才創(chuàng)建的Git倉庫的URL。在App Platform的下一個版本中,為我們將可以從可用倉庫列表中選擇要使用的倉庫URL。
- 單擊Submit(提交)。
- 單擊左側(cè)菜單欄頂部的Deploy Changes(部署變更)。
App Platform將會創(chuàng)建并運行Tekton管道,從倉庫中克隆應(yīng)用程序,構(gòu)建映像,并將映像推送到Harbor。映像將被推送到Harbor的私有注冊表,只有Team成員才能訪問。
隨后我們就可以打開Apps選項下的Tekton儀表板(在Team視圖下?。?,在這里可以了解構(gòu)建的進行狀態(tài),還可以點擊左側(cè)菜單中的Builds選項,在這里查看每個項目所創(chuàng)建的構(gòu)建。點擊PipelineRun鏈接即可查看構(gòu)建狀態(tài)。

管道準(zhǔn)備就緒后,即可在Harbor中看到映像了。進入左側(cè)菜單的Apps選項,點擊Harbor。請注意:我們是以平臺管理員身份登錄的,因此會看到App Platform創(chuàng)建的所有項目。點擊所創(chuàng)建的團隊項目,在這里可以看到一個名為team-demo/demo的資源庫。

步驟2:創(chuàng)建用于部署映像的工作負載
- 首先進入Builds列表,復(fù)制映像的倉庫名:

- 隨后單擊左側(cè)菜單中的Catalog(目錄)。
- 在Catalog中單擊Quickstart-K8s-Deployment圖表。

- 單擊Values(值)選項卡。
- 為工作負載設(shè)置名稱,例如“demo”。
- 在Chart values文件中,將image.repository設(shè)置為剛才復(fù)制到剪貼板中的注冊表名稱,并將image.tag設(shè)置為latest。
- 單擊底部的Submit(提交)。
- 單擊左側(cè)菜單欄頂部的Deploy Changes(部署變更)。
隨后App Platform將創(chuàng)建部署應(yīng)用所需的Argo CD ApplicationSet。請注意,“值”和“圖表”分別存儲在不同的Git倉庫中。
要在Argo CD中查看demo應(yīng)用,請單擊左側(cè)菜單中的Workloads(工作負載),隨后會看到項目創(chuàng)建的工作負載。點擊應(yīng)用程序鏈接即可查看工作負載的狀態(tài)。

隨后App Platform將創(chuàng)建部署應(yīng)用所需的Argo CD ApplicationSet。請注意,“值”和“圖表”分別存儲在不同的Git倉庫中。
要在Argo CD中查看demo應(yīng)用,請單擊左側(cè)菜單中的Workloads(工作負載),隨后會看到項目創(chuàng)建的工作負載。點擊應(yīng)用程序鏈接即可查看工作負載的狀態(tài)。
步驟3:發(fā)布應(yīng)用
在這個應(yīng)用程序上線前還需要做一些事情。App Platform使用了Nginx Ingress和Istio組成的一種先進的入口架構(gòu)。要發(fā)布應(yīng)用程序,首先需要創(chuàng)建兩個VirtualService:一個Ingress和一個Istio。好在App Platform可以自動完成相關(guān)操作。
- 單擊菜單中的Services(服務(wù))。
- 單擊Create Service(創(chuàng)建服務(wù))。
- 在下拉菜單中選擇demo服務(wù)。

- 在Exposure(暴露)下單擊External(對外)。
- 單擊Submit(提交),然后單擊Deploy Changes(部署變更)。
在服務(wù)列表中,我們可以看到剛剛創(chuàng)建的服務(wù)以及用于發(fā)布服務(wù)的URL。請點擊這個URL。

總結(jié)
在本文中,我們配置了一個LKE集群并啟用了Akamai App Platform。隨后,我們配置了對象存儲,啟用了Harbor App,創(chuàng)建了一個Team和一個倉庫。然后,我們使用App Platform中的自助服務(wù)表單構(gòu)建、部署并發(fā)布了一個應(yīng)用程序。
安裝Akamai App Platform后,我們可以配置對象存儲,這樣所有集成在App Platform中的應(yīng)用程序都將可以使用此配置。隨后在為Grafana Loki、Thanos、Harbor和Tempo等應(yīng)用配置對象存儲時,就不再需要反復(fù)嘗試。有了Akamai App Platform,這一切都能大幅簡化。
憑借Team多租戶功能,我們可以讓多組用戶獨立工作,并讓他們共享相同的基礎(chǔ)架構(gòu)和平臺功能。用戶可以使用自助服務(wù)表單在幾分鐘內(nèi)構(gòu)建、部署并發(fā)布自己的應(yīng)用。
本文的內(nèi)容僅僅只是冰山一角。Akamai App Platform還有更多豐富功能。歡迎關(guān)注Akamai知乎機構(gòu)號,我們將通過更多后續(xù)文章深入介紹Akamai App Platform,并向大家展示如何創(chuàng)建機密、配置網(wǎng)絡(luò)策略、使用安全策略以及使用平臺功能實現(xiàn)CI/CD、可觀察性和安全性。
如您所在的企業(yè)也在考慮采購云服務(wù)或進行云遷移,
點擊鏈接了解Akamai Linode的解決方案



















