前言
Kubernetes是一個開源的容器管理平臺,通過Kubernetes的跨集群管理功能,用戶可以方便地進行應用程序的復制、遷移和跨云平臺的部署。
而k3s作為Kubernetes的輕量級發(fā)行版,相比傳統(tǒng)的Kubernetes具有更小的二進制文件大小和更低的資源消耗。
使用 K3s 不僅能夠縮短啟動集群的時間,還能夠減少集群需要消耗的資源。是RISC-V軟件生態(tài)中不可或缺的一部分。
接下來就將教大家如何在SG2042上玩轉(zhuǎn)k3s。
一、本次實驗材料
1. 一臺SG2042服務器
2. 已經(jīng)預先編譯好的k3s
已預先編譯的k3s二進制文件下載
https://github.com/CARV-ICS-FORTH/k3s/releases
二、實驗過程
1. 下載、運行k3s
首先我們下載預先編譯好的k3s包:
由于預編譯好的k3s包已被分為三個文件,因此需要將三個文件合并為一個文件
解壓,并給k3s-riscv64文件添加運行權(quán)限:
測試該文件是否能運行,如果出現(xiàn)說明,那就說明成功運行。
將k3s-riscv64文件復制到/usr/local/bin/下,并更名為k3s
注意:不要忘記加上sudo,否則會提示沒有權(quán)限。
再次測試,看看k3s是否能運行:
2. 下載、運行k3s安裝腳本
當然只有k3s二進制文件是不夠的,因此我們還需要使用安裝腳本以獲得完整的k3s體驗。
下載k3s安裝腳本:
curl -sfL
https://get.k3s.io > k3s-install.sh
運行該腳本:
chmod +x k3s-install.sh
注意,如果直接./k3s-install.sh,會提示不支持的架構(gòu),因此需要把前面的參數(shù)帶上。
INSTALL_K3S_EXEC="server --disable metrics-server" INSTALL_K3S_SKIP_DOWNLOAD="true" bash -x ./k3s-install.sh
查看狀態(tài),如提示active那就說明k3s正在運行:
systemctl status k3s
3.運行k3s容器
新建hello-sg2042.yaml打開并往里面復制以下內(nèi)容:
改自:
https://raw.githubusercontent.com/CARV-ICS-FORTH/kubernetes-riscv64/main/examples/hello-kubernetes.yaml
apiVersion: v1 kind: Service metadata: name: hello spec: type: ClusterIP ports: - port: 8080 selector: app: hello --- apiVersion: apps/v1 kind: Deployment metadata: name: hello spec: replicas: 1 selector: matchLabels: app: hello template: metadata: labels: app: hello spec: containers: - name: hello-kubernetes image: carvicsforth/hello-kubernetes:1.10.1 env: - name: MESSAGE value: "Greeting from SG2042!"
保存退出后使用該模板啟動一個新的容器:
sudo kubectl apply -f hello-sg2042.yaml
注意:不要忘記sudo,不然就會提示沒有權(quán)限!
查看pods情況:
sudo kubectl get pods -o wide
(如果看到pod還沒顯示ip地址,你可以耐心等一會,直到顯示pod的ip地址)
使用curl拉取網(wǎng)頁,如果拉取到網(wǎng)頁,那就說明k3s容器運行成功:
4.開放外部計算機訪問
雖然本機可以通過curl訪問,但是外部計算機訪問不了,那如何讓外部計算機訪問該網(wǎng)頁呢?
這就需要修改hello-sg2042.yaml中的內(nèi)容了,用編輯器打開hello-sg2042.yaml,然后按照以下內(nèi)容修改:
apiVersion: v1 kind: Service metadata: name: hello spec: type: NodePort ports: - port: 8080 targetPort: 8080 nodePort: 30080 protocol: TCP selector: app: hello --- apiVersion: apps/v1 kind: Deployment metadata: name: hello spec: replicas: 1 selector: matchLabels: app: hello template: metadata: labels: app: hello spec: containers: - name: hello-kubernetes image: carvicsforth/hello-kubernetes:1.10.1 env: - name: MESSAGE value: "Greeting from SG2042!"
注意:nodePort可以自行修改你想要的,但是只能在30000-32767里選一個。
在瀏覽器中訪問http://175.8.161.253:30080(如果用的是你自己的端口號,請將30080改成你當時設置的nodePort)即可。
三、實驗總結(jié):
得益于社區(qū)的幫助,k3s已經(jīng)可以運行在sg2042平臺上,但是由于該Fork并未并入k3s官方代碼,因此k3s目前未正式支持riscv64。
參考資料:
kubernetes-riscv64下的運行指南
https://github.com/CARV-ICS-FORTH/kubernetes-riscv64#running
《RISC-V公測平臺發(fā)布》系列文章會持續(xù)跟大家分享澎峰RISC-V生態(tài)圈的開發(fā)者朋友們在RISC-V平臺的移植測試成果,目前已發(fā)布:1.
RISC-V公測平臺發(fā)布 · Stream帶寬完整測試
2.RISC-V公測平臺發(fā)布 · 我的世界MohistMC
3.RISC-V公測平臺發(fā)布 · 第一個WEB Server“Hello RISC-V world!”
4.RISC-V公測平臺發(fā)布 · 如何在SG2042上玩轉(zhuǎn)k3s(本篇)
未來計劃發(fā)布:
1.RISC-V公測平臺發(fā)布 · 第一個BLOG Server"RISC-V成長日記”
審核編輯:湯梓紅
-
編譯
+關注
關注
0文章
649瀏覽量
32775 -
RISC-V
+關注
關注
44文章
2208瀏覽量
45959 -
kubernetes
+關注
關注
0文章
223瀏覽量
8683
發(fā)布評論請先 登錄
相關推薦
評論