前言
Kubernetes是一個開源的容器管理平臺,通過Kubernetes的跨集群管理功能,用戶可以方便地進行應用程序的復制、遷移和跨云平臺的部署。
而k3s作為Kubernetes的輕量級發行版,相比傳統的Kubernetes具有更小的二進制文件大小和更低的資源消耗。
使用 K3s 不僅能夠縮短啟動集群的時間,還能夠減少集群需要消耗的資源。是RISC-V軟件生態中不可或缺的一部分。
接下來就將教大家如何在SG2042上玩轉k3s。
一、本次實驗材料
1. 一臺SG2042服務器
2. 已經預先編譯好的k3s
已預先編譯的k3s二進制文件下載
https://github.com/CARV-ICS-FORTH/k3s/releases
二、實驗過程
1. 下載、運行k3s
首先我們下載預先編譯好的k3s包:
由于預編譯好的k3s包已被分為三個文件,因此需要將三個文件合并為一個文件
解壓,并給k3s-riscv64文件添加運行權限:
測試該文件是否能運行,如果出現說明,那就說明成功運行。
將k3s-riscv64文件復制到/usr/local/bin/下,并更名為k3s
注意:不要忘記加上sudo,否則會提示沒有權限。
再次測試,看看k3s是否能運行:
2. 下載、運行k3s安裝腳本
當然只有k3s二進制文件是不夠的,因此我們還需要使用安裝腳本以獲得完整的k3s體驗。
下載k3s安裝腳本:
curl -sfL
https://get.k3s.io > k3s-install.sh
運行該腳本:
chmod +x k3s-install.sh
注意,如果直接./k3s-install.sh,會提示不支持的架構,因此需要把前面的參數帶上。
INSTALL_K3S_EXEC="server --disable metrics-server" INSTALL_K3S_SKIP_DOWNLOAD="true" bash -x ./k3s-install.sh
systemctl status k3s
3.運行k3s容器
新建hello-sg2042.yaml打開并往里面復制以下內容:
改自:
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,不然就會提示沒有權限!
查看pods情況:
sudo kubectl get pods -o wide
(如果看到pod還沒顯示ip地址,你可以耐心等一會,直到顯示pod的ip地址)
使用curl拉取網頁,如果拉取到網頁,那就說明k3s容器運行成功:
4.開放外部計算機訪問
雖然本機可以通過curl訪問,但是外部計算機訪問不了,那如何讓外部計算機訪問該網頁呢?
這就需要修改hello-sg2042.yaml中的內容了,用編輯器打開hello-sg2042.yaml,然后按照以下內容修改:
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)即可。
三、實驗總結:
得益于社區的幫助,k3s已經可以運行在sg2042平臺上,但是由于該Fork并未并入k3s官方代碼,因此k3s目前未正式支持riscv64。
參考資料:
kubernetes-riscv64下的運行指南
https://github.com/CARV-ICS-FORTH/kubernetes-riscv64#running
《RISC-V公測平臺發布》系列文章會持續跟大家分享澎峰RISC-V生態圈的開發者朋友們在RISC-V平臺的移植測試成果,目前已發布:1.
RISC-V公測平臺發布 · Stream帶寬完整測試
2.RISC-V公測平臺發布 · 我的世界MohistMC
3.RISC-V公測平臺發布 · 第一個WEB Server“Hello RISC-V world!”
4.RISC-V公測平臺發布 · 如何在SG2042上玩轉k3s(本篇)
未來計劃發布:
1.RISC-V公測平臺發布 · 第一個BLOG Server"RISC-V成長日記”
審核編輯:湯梓紅
-
編譯
+關注
關注
0文章
659瀏覽量
32903 -
RISC-V
+關注
關注
45文章
2292瀏覽量
46248 -
kubernetes
+關注
關注
0文章
225瀏覽量
8725
發布評論請先 登錄
相關推薦
評論