Slide 1

Slide 1 text

地端 自 建 Kubernetes 小 宇宙 Johnny Sung

Slide 2

Slide 2 text

Full stack developer Johnny Sung (宋岡諺) https://fb.com/j796160836 https://blog.jks.co ff ee/ https://www.slideshare.net/j796160836 https://github.com/j796160836

Slide 3

Slide 3 text

大 綱 •K8s 基本概念 •K8s 元件的概念 •地端架設實務 •GPU 卡?

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

High Availability https://soco-st.com/18158 高 可 用 性

Slide 6

Slide 6 text

https://blog.whmcs.com/133514/demystifying-high-availability-for-whmcs

Slide 7

Slide 7 text

CAP 定理 • 一 致性(Consistency) •可 用 性(Availability) •分區容錯性(Partition tolerance) https://zh.wikipedia.org/zh-tw/CAP%E5%AE%9A%E7%90%86 https://medium.com/nerd-for-tech/understand-cap-theorem-751f0672890e

Slide 8

Slide 8 text

https://medium.com/how-gipi-learn/%E5%B0%8A%E9%87%8D-%E9%9C%80%E8%A6%81%E9%9D%A0%E5%B0%88%E6%A5%AD%E5%8E%BB%E8%B4%8F%E5%9B%9E%E4%BE%86-8fdecf676fe5

Slide 9

Slide 9 text

https://medium.com/%E5%BE%8C%E7%AB%AF%E6%96%B0%E6%89%8B%E6%9D%91/cap%E5%AE%9A%E7%90%86101-3fdd10e0b9a

Slide 10

Slide 10 text

https://medium.com/%E5%BE%8C%E7%AB%AF%E6%96%B0%E6%89%8B%E6%9D%91/cap%E5%AE%9A%E7%90%86101-3fdd10e0b9a

Slide 11

Slide 11 text

https://medium.com/%E5%BE%8C%E7%AB%AF%E6%96%B0%E6%89%8B%E6%9D%91/cap%E5%AE%9A%E7%90%86101-3fdd10e0b9a

Slide 12

Slide 12 text

大 部分都要改程式 https://soco-st.com/18158 要做到 高 可 用 性 我們今天就 Infrastructure 做探討

Slide 13

Slide 13 text

https://javascript.plainenglish.io/what-is-a-server-explanation-for-young-developers-2511d8b313b7

Slide 14

Slide 14 text

https://ithelp.ithome.com.tw/articles/10250841 Virtual Machine (VM) vs Docker

Slide 15

Slide 15 text

https://upload.wikimedia.org/wikipedia/commons/6/67/Kubernetes_logo.svg

Slide 16

Slide 16 text

https://www.cncf.io/blog/2024/06/06/unveiling-the-10-year-kubernetes-anniversary-logo/

Slide 17

Slide 17 text

開發 工 程師視 角 的 Kubernetes 可能是你? https://soco-st.com/20498

Slide 18

Slide 18 text

https://soco-st.com/20498 我知道!就是 檔!

Slide 19

Slide 19 text

是什麼? 可以吃嗎? https://soco-st.com/20498

Slide 20

Slide 20 text

想想以前 Docker 的時代

Slide 21

Slide 21 text

Created by hanis tusiyani from Noun Project https://thenounproject.com/icon/server-7086299/
 https://thenounproject.com/icon/data-center-7086329/
 https://www.pngwing.com/en/free-png-ztqam docker run -v ./www:/usr/share/nginx/html:ro -p 80:80 -d nginx docker run 指令 一 次起 單 一 服務

Slide 22

Slide 22 text

Created by hanis tusiyani from Noun Project https://thenounproject.com/icon/server-7086299/
 https://thenounproject.com/icon/data-center-7086329/
 https://www.pngwing.com/en/free-png-ztqam docker run -v ./www:/usr/share/nginx/html:ro -p 80:80 -d nginx version: "3" services: nginx: image: nginx volumes: - ./www:/usr/share/nginx/html:ro ports: - 80:80 docker run 指令 docker-compose.yml 一 次起 多組服務 一 次起 單 一 服務

Slide 23

Slide 23 text

Created by hanis tusiyani from Noun Project https://thenounproject.com/icon/server-7086299/
 https://thenounproject.com/icon/data-center-7086329/
 https://www.pngwing.com/en/free-png-ztqam Created by hanis tusiyani from Noun Project docker run -v ./www:/usr/share/nginx/html:ro -p 80:80 -d nginx version: "3" services: nginx: image: nginx volumes: - ./www:/usr/share/nginx/html:ro ports: - 80:80 docker run 指令 docker-compose.yml • deployment.yml • services.yml • rbac.yml • config-map.yml • …. 一 次起 多組服務 Kubernetes 多組服務 部署在 多台主機 上 一 次起 單 一 服務

Slide 24

Slide 24 text

一 個網站服務的基本元件

Slide 25

Slide 25 text

Pod Container https://thenounproject.com/icon/ram-7094983/ https://thenounproject.com/icon/hard-disk-7094988/ https://thenounproject.com/icon/network-5355161/ https://thenounproject.com/icon/history-5019532/ https://thenounproject.com/icon/central-processing-unit-7095000/ https://thenounproject.com/icon/form-6622708/
 https://thenounproject.com/icon/approval-6293848/ 網站服務的基本元件

Slide 26

Slide 26 text

Pod • Kubernetes 的最 小 單位 • 裡 面 「通常」只會有 一 個 container (sidecar 情境除外) https://medium.com/@ajeetrai707/kubernetes-pods-an-introduction-650b6f93874d

Slide 27

Slide 27 text

Pod Container https://thenounproject.com/icon/ram-7094983/ https://thenounproject.com/icon/hard-disk-7094988/ https://thenounproject.com/icon/network-5355161/ https://thenounproject.com/icon/history-5019532/ https://thenounproject.com/icon/central-processing-unit-7095000/ https://thenounproject.com/icon/form-6622708/
 https://thenounproject.com/icon/approval-6293848/ Service Created by Mada Creative 網站服務的基本元件

Slide 28

Slide 28 text

• 將 一 個 Pod 或 一 組 Pod 開放對外出去的定義,
 運作模式主要有三種: • ClusterIP • NodePort • Load Balancer Service (服務) apiVersion: v1 kind: Service metadata: name: my-service namespace: my-namespace spec: selector: app: my-deployment ports: - protocol: TCP port: 3000 targetPort: 3000 nodePort: 31200 type: NodePort (NodePort 範圍 30000-32767) 地端 K8s 預設沒有 LoadBalancer 可 用

Slide 29

Slide 29 text

Pod Container Deployment ReplicaSet https://thenounproject.com/icon/ram-7094983/ https://thenounproject.com/icon/hard-disk-7094988/ https://thenounproject.com/icon/network-5355161/ https://thenounproject.com/icon/history-5019532/ https://thenounproject.com/icon/central-processing-unit-7095000/ https://thenounproject.com/icon/form-6622708/
 https://thenounproject.com/icon/approval-6293848/ by Muhammad Naufal Subhiansyah from Noun Project by Muhammad Naufal Subhiansyah from Noun Project Service Created by Mada Creative 網站服務的基本元件

Slide 30

Slide 30 text

Deployment (部署) • 定義 一 個 Pod 的部署 方 式 • Replicas 要幾份 • 設定參數 • Con fi gMap, Secret • Resources Limit (CPU, memory) • VolumeMounts
 (使 用 的 PersistentVolumeClaim PVC) apiVersion: apps/v1 kind: Deployment metadata: labels: app: my-deployment name: my-deployment namespace: my-namespace spec: replicas: 1 selector: matchLabels: app: my-deployment template: metadata: labels: app: my-deployment spec: containers: - image: my_image:1.0 name: my_image resources: requests: memory: 64Mi cpu: 250m limits: memory: 128Mi cpu: 500m ports: - containerPort: 3000 name: my_image volumeMounts: - name: my-pvc mountPath: /mydata - name: my-pvc mountPath: /data/output volumes: - name: my-pvc persistentVolumeClaim: claimName: my-pvc

Slide 31

Slide 31 text

Pod Container Deployment ReplicaSet https://thenounproject.com/icon/ram-7094983/ https://thenounproject.com/icon/hard-disk-7094988/ https://thenounproject.com/icon/network-5355161/ https://thenounproject.com/icon/history-5019532/ https://thenounproject.com/icon/central-processing-unit-7095000/ https://thenounproject.com/icon/form-6622708/
 https://thenounproject.com/icon/approval-6293848/ by Muhammad Naufal Subhiansyah from Noun Project by Muhammad Naufal Subhiansyah from Noun Project Service Created by Mada Creative PVC PersistentVolumeClaim PersistentVolume PV 1:1 網站服務的基本元件

Slide 32

Slide 32 text

Pod Container Deployment ReplicaSet https://thenounproject.com/icon/ram-7094983/ https://thenounproject.com/icon/hard-disk-7094988/ https://thenounproject.com/icon/network-5355161/ https://thenounproject.com/icon/history-5019532/ https://thenounproject.com/icon/central-processing-unit-7095000/ https://thenounproject.com/icon/form-6622708/
 https://thenounproject.com/icon/approval-6293848/ by Muhammad Naufal Subhiansyah from Noun Project by Muhammad Naufal Subhiansyah from Noun Project Service Created by Mada Creative PVC PersistentVolumeClaim PersistentVolume PV Created by Andika Cahya Fitriani from the Noun Project Provisioner StorageClass 1:1 網站服務的基本元件 還有更多...

Slide 33

Slide 33 text

磁碟相關 • PersistentVolumeClaim (PVC):空間要求 • PersistentVolume (PV) • StorageClass Hard Disk Drive by Ahmad Roaayala from Noun Project (CC BY 3.0)
 https://thenounproject.com/browse/icons/term/hard-disk-drive/

Slide 34

Slide 34 text

PersistentVolumeClaim (PVC) • 白 話 文 :存放(磁碟)空間的要求 • 開發 人 員建置(類似空間需求申請單) Hard Disk Drive by Ahmad Roaayala from Noun Project (CC BY 3.0)
 https://thenounproject.com/browse/icons/term/hard-disk-drive/ MB => Mi (Mebibytes) GB => Gi (Gibibytes) apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: nfs-client accessModes: - ReadWriteMany resources: requests: storage: 10Gi

Slide 35

Slide 35 text

docker-compose version: "3" services: nginx: image: nginx volumes: - ./www:/usr/share/nginx/html:ro ports: - 80:80 • 服務部署 • 磁碟 • 網路

Slide 36

Slide 36 text

對應 Kubernetes 的元件 • 服務部署 → Deployment / Pod • 磁碟 → PersistentVolumeClaim (PVC) / Con fi gMap / Secret • 網路 → Service / Ingress 永久磁碟儲存需求 會 自 動 1:1 對應 PersistentVolume (PV) 地端 K8s 預設沒有 LoadBalancer 可 用

Slide 37

Slide 37 text

Kustomize Kustomize 是 一 個 Kubernetes 的配置管理 工 具,可以透過定制資源的配置來 簡化 Kubernetes 的部署。它專注於以聲明式 方 式修改和管理 Kubernetes manifest 檔案,不需要動態 生 成配置。使 用 者可以建 立 基礎配置的 "基底", 然後在不同環境(如開發、測試和 生 產)中進 行 客製化覆蓋。Kustomize 允許 合併或替換 YAML 檔案的部分,使得配置更加模組化和可重 用 。它現在是 Kubernetes 的 一 部分,可以直接透過 kubectl 命令 行工 具使 用 。 https://zlaval.medium.com/kustomize-template-free-kubernetes-application-management-3d70ca9d2e05

Slide 38

Slide 38 text

Kustomize 檔案架構 https://thenounproject.com/icon/ fi le-6897025/ https://thenounproject.com/icon/puzzle-6850847/ deployment.yml services.yml config-map.yml … kustomization.yaml

Slide 39

Slide 39 text

當 YAMLs 越來越多... 你需要 請更多 YAML 工 程師👷

Slide 40

Slide 40 text

當 YAMLs 越來越多... 你需要 Helm

Slide 41

Slide 41 text

Helm Helm 是 一 個 用 於 Kubernetes 的套件管理 工 具,允許開發者和運維團隊打包、 配置和部署服務。Helm 使 用 稱為 "Charts" 的配置 文 件來描述 一 組相關的 Kubernetes 資源,這些資源可以預先配置並重複使 用 。透過 Helm, 用 戶 可以輕 鬆地安裝、升級和管理 Kubernetes 應 用 ,並 支 援版本控制和回滾 (Rollback) 功 能,使得部署和維護變得更加 方 便和有效。 https://helm.sh/

Slide 42

Slide 42 text

Created by Mas Mirza from Noun Project values.yml • deployment.yml • services.yml • rbac.yml • config-map.yml • …. Helm 檔案架構 https://thenounproject.com/icon/ fi le-6897025/ https://thenounproject.com/icon/puzzle-6850847/ Charts

Slide 43

Slide 43 text

可是我對 Helm 指令不太熟耶... 🥸

Slide 44

Slide 44 text

https://github.com/JohnnyWorks-TW/vue-helm-cli-helper 可以服 用 我寫的 Helm Chart 小 助 手 😎

Slide 45

Slide 45 text

維運 工 程師視 角 的 Kubernetes 可能還是你? https://soco-st.com/18158

Slide 46

Slide 46 text

K8s 的各種選擇 •作業系統 OS •K8s distro •Container Runtime •CNI (Container Network Interface) •CRI (Container Runtime Interface)

Slide 47

Slide 47 text

K8s 的各種選擇 •作業系統 OS •Ubuntu? Redhat?

Slide 48

Slide 48 text

K8s 的各種選擇 •Container Runtime •docker? containerd? cri-o?

Slide 49

Slide 49 text

K8s 的各種選擇 •K8s distro •社群版 •kubeadm? Rancher? •商 用 版 •OpenShift? VMWare Tanzu?

Slide 50

Slide 50 text

K8s 的各種選擇 •CNI (Container Network Interface) •Flannel? Calico? Cilium?

Slide 51

Slide 51 text

通通綜合起來... https://soco-st.com/18158

Slide 52

Slide 52 text

No content

Slide 53

Slide 53 text

No content

Slide 54

Slide 54 text

我給你 一 個預設選項吧! •作業系統 OS:ubuntu •K8s distro:kubeadm •Container Runtime: docker •CNI (Container Network Interface): fl annel •CRI (Container Runtime Interface): cri-dockerd https://soco-st.com/21673 https://en.m.wikipedia.org/wiki/File:UbuntuCoF.svg https://www.docker.com/company/newsroom/media-resources/

Slide 55

Slide 55 text

K8s 作業系統選擇 •建議選多 人用 的 •Debian 系列:Ubuntu, Debian, … •Redhat 系列:RHEL (Red Hat Enterprise Linux), RockyLinux, Fedora core, …

Slide 56

Slide 56 text

K8s distro 選擇 •個 人 經驗,使 用 標準 kubeadm 指令 (也有 人 稱為 Vanilla Kubernetes) •商 用 付費版可以考慮

Slide 57

Slide 57 text

Container Runtime 選擇 •建議選多 人用 的 •docker •containerd •cri-o •cri-o 配合 NVIDIA GPU Driver 似乎有問題

Slide 58

Slide 58 text

CRI 選擇 •CRI 必須配合 Container runtime •docker → cri-dockerd

Slide 59

Slide 59 text

https://kubernetes.io/blog/2017/11/containerd-container-runtime-options-kubernetes/

Slide 60

Slide 60 text

Flannel Calico Cilium •使 用 BGP(Border Gateway Protocol)進 行 路由,提供 高 效的三層網絡 • •利 用 Linux 的 eBPF 技 術,直接在內核層處理網絡 流量 • 支 援 L3/L4/L7 層的網絡 策略 •簡單易 用 的網絡解決 方 案 •使 用 VXLAN 或 host-gw 模式來實現網絡互通 •不 支 援 Network Policies 無法做細粒度的流量控制 CNI 比 較 https://www.civo.com/blog/calico-vs- fl annel-vs-cilium

Slide 61

Slide 61 text

特性 Flannel Calico Cilium 主要 用 途 簡單網絡連接 高 性能網絡與安全策略 現代化網絡與安全策略 封裝 方 式 VXLAN/host-gw BGP/IPIP/VXLAN eBPF 性能 中 高 高 支 持網絡策略 否 是(進階策略) 是(L3-L7 層 支 援) 資源消耗 低 中 中 學習曲線 低 中 高 高 適 用 場景 小 型集群、簡單場景 大 型集群、混合環境 微服務、 高 安全性需求 CNI 比 較

Slide 62

Slide 62 text

CNI 選擇 •簡單好上 手 就:Flannel •複雜功能 一 次到位:Cilium •CNI 預設 namespace 間沒有阻擋

Slide 63

Slide 63 text

不只這些 https://soco-st.com/18158

Slide 64

Slide 64 text

•StorageClass: nfs-subdir-external-provisioner •Metric server •ArgoCD •Prometheus + Grafana K8s 常安裝的元件 部署 監控 儲存 K8s擴展

Slide 65

Slide 65 text

https://blog.jks.co ff ee/on-premise-self-host-kubernetes-k8s-setup-redhat https://blog.jks.co ff ee/on-premise-self-host-kubernetes-k8s-setup-ubuntu

Slide 66

Slide 66 text

大 致步驟 •<每台都做> 關掉 Swap •<每台都做> 安裝 Docker •<每台都做> 安裝 kubelet、kubeadm、kubectl •<每台都做> 安裝 cri-dockerd •<每台都做> 設定 /etc/hosts •設定 Control plane node •設定 Worker node • 安裝 Helm 套件管理程式 • 安裝 Flannel CNI • 測試檢查叢集

Slide 67

Slide 67 text

K8s 的元件介紹 https://shopee.tw/product/4216795/204703757

Slide 68

Slide 68 text

https://kubernetes.io/docs/concepts/overview/components/

Slide 69

Slide 69 text

https://mrdevops.hashnode.dev/kubernetes-architecture

Slide 70

Slide 70 text

K8s Control Plane 元件 •kube-apiserver 主要核 心 ,提供 Kubernetes HTTP API •etcd Key-Value 資料庫,有 一 致性與 高 可 用 的特 色 •kube-scheduler 排程分配器,把 Pod 分到合適的 node •kube-controller-manager 有 一 個 Run Loop 監控叢集的狀態,盡可能調整狀態達成 目 標 •cloud-controller-manager 與雲端廠商元件溝通使 用 ,底層與雲端整合

Slide 71

Slide 71 text

K8s 每個 Node 元件 •kubelet 主服務,確保各元件有正常運作 •kube-proxy 維護網路規則以實現 Service 的功能 •Container runtime 容器化運 行 軟體

Slide 72

Slide 72 text

K8s 重點元件 •kubelet •etcd •CoreDNS •Network CNI •Container Runtime (CRI) https://github.com/coredns https://github.com/etcd-io/etcd

Slide 73

Slide 73 text

K8s 元件 •StorageClass

Slide 74

Slide 74 text

https://www.cncf.io/

Slide 75

Slide 75 text

光提到 K8s 主元件 就有這些了

Slide 76

Slide 76 text

若是 週邊系統 就更多了 And More…

Slide 77

Slide 77 text

https://www.onlogic.com/blog/what-is-a-gpu-a-beginners-guide/ 關於 GPU

Slide 78

Slide 78 text

想玩地端 LLM ?

Slide 79

Slide 79 text

首 先,你要有張 NVIDIA 的卡 (誤)

Slide 80

Slide 80 text

https://mises.org/mises-daily/understanding-price-money

Slide 81

Slide 81 text

GPU 相關 •NVIDIA driver •NVIDIA CUDA •GPU Operator

Slide 82

Slide 82 text

GPU Operator 重點元件 •Device Plugin •GPU Feature Discovery (GFD) •DCGM •DCGM Exporter • …

Slide 83

Slide 83 text

https://info.nvidia.com/how-to-use-gpus-on-kubernetes-webinar.html

Slide 84

Slide 84 text

https://info.nvidia.com/how-to-use-gpus-on-kubernetes-webinar.html

Slide 85

Slide 85 text

GPU K8s 大 致步驟 •裝 NVIDIA driver(.run的版本) •裝 NVIDIA Cuda •裝 NVIDIA Container Toolkit •下指令 patch con fi g 綁定 Containerd •裝 Kubernetes •裝 GPU Operator

Slide 86

Slide 86 text

https://realfood.tesco.com/recipes/rainbow-cake.html GPU 怎麼切?

Slide 87

Slide 87 text

https://aws.amazon.com/tw/blogs/containers/gpu-sharing-on-amazon-eks-with-nvidia-time-slicing-and-accelerated-ec2-instances/ https://developer.nvidia.com/blog/improving-gpu-utilization-in-kubernetes/

Slide 88

Slide 88 text

GPU 切割 方 式 看起來有五種,但其實只有 二 種 https://soco-st.com/18158

Slide 89

Slide 89 text

Time slicing •分時多 工 的原理 •vRAM 不限制 MPS •Multi-Thread 方 式分配 •vRAM 每份固定 大 (Multi-Process Service)

Slide 90

Slide 90 text

MIG •硬體層 面 切割 GPU •指定型號才有 (例如:A100, H100) •Blackwell 或 Hopper™ 系列 vGPU •NVIDIA 支 援 GPU 虛擬化 •要軟體授權 (Multi-Instance GPU) (virtual GPU) https://www.nvidia.com/en-us/technologies/multi-instance-gpu/

Slide 91

Slide 91 text

GPU Mode 比 較 •Time slicing: Memory 不限制,Process 間會排擠 •MPS: 軟體性均分 •MIG: 硬體層級分割 https://cloud.google.com/kubernetes-engine/docs/concepts/timesharing-gpus

Slide 92

Slide 92 text

https://www.youtube.com/watch?v=Q2GuTUO170w

Slide 93

Slide 93 text

地端 (on-premises) 建置有什麼雷點? 很多... 😎

Slide 94

Slide 94 text

地端 (on-premises) 建置有什麼雷點? 很多... 🥹

Slide 95

Slide 95 text

https://www.reddit.com/r/Helldivers/comments/1eir0ha/free_mines_are_a_bad_idea/

Slide 96

Slide 96 text

地端離線建置的雷點 •離線建置實測會 hang 住 •離線建議使 用 傳統 docker load 建置 https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/

Slide 97

Slide 97 text

裝 cri-dockerd •沒有出現成套件可 用 (.rpm .deb) •Redhat 的 Golang 沒這麼新.... https://github.com/coredns https://github.com/etcd-io/etcd

Slide 98

Slide 98 text

https://github.com/Mirantis/cri-dockerd/releases/tag/v0.3.16 https://wiki.ubuntu.com/Releases

Slide 99

Slide 99 text

https://github.com/Mirantis/cri-dockerd/releases/tag/v0.3.16 https://wiki.ubuntu.com/Releases noble?

Slide 100

Slide 100 text

https://blog.jks.co ff ee/on-premise-self-host-kubernetes-k8s-setup-redhat

Slide 101

Slide 101 text

https://blog.jks.co ff ee/on-premise-self-host-kubernetes-k8s-setup-redhat

Slide 102

Slide 102 text

每個機器都要有名稱 •設定主機對應 vi /etc/hosts 192.168.1.100 k8s-ctrl 192.168.1.101 k8s-node1 192.168.1.102 k8s-node2

Slide 103

Slide 103 text

關於 hostname •合法字元: 小 寫 a-z 數字 0-9 與連字號 - •63 個字元 •不要 用大 寫,不要 用 底線 _ 1 to 63 characters long and the entire hostname, including the dots, can be at most 253 characters long. Valid characters for hostnames are ASCII(7) letters from a to z, the digits from 0 to 9, and the hyphen (−). A hostname may not start with a hyphen. https://www.linuxcampus.net/documentation/man-html/htmlman7/hostname.7.html

Slide 104

Slide 104 text

指令/操作 持續時間 影響範圍 效果 sysctl -w vm.swappiness=0 臨時 只降低 swap 使 用 優先權 swap 還在,但基本不會被 用 到 sudo swapoff -a 臨時 停 止 當前所有 swap 分區 swap 停 用 ,內存壓 力 增加 修改 /etc/fstab 永久 👑 開機後不再啟 用 swap swap 永久禁 用 關閉 SWAP

Slide 105

Slide 105 text

SWAP 參數 •Redhat / RockeyLinux 預設會有參數在 GRUB2 上 grubby --info DEFAULT 查看 grub2 參數 index=0 kernel="/boot/vmlinuz-5.14.0-503.14.1.el9_5.x86_64" args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl_rk8--ctrl-swap rd.lvm.lv=rl_rk8-ctrl/root rd.lvm.lv=rl_rk8-ctrl/swap" root="/dev/mapper/rl_rk8--ctrl-root" initrd="/boot/initramfs-5.14.0-503.14.1.el9_5.x86_64.img" title="Rocky Linux (5.14.0-503.14.1.el9_5.x86_64) 9.5 (Blue Onyx)" id="11732e333bc94575b1636210b0a72f03-5.14.0-503.14.1.el9_5.x86_64" 影響開機流程

Slide 106

Slide 106 text

grubby --update-kernel=ALL --remove-args="resume=/dev/mapper/rl_rk8--ctrl-swap rd.lvm.lv=rl_rk8-ctrl/swap" SWAP 參數 •Redhat / RockeyLinux 預設會有參數在 GRUB2 上 index=0 kernel="/boot/vmlinuz-5.14.0-503.14.1.el9_5.x86_64" args="ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/rl_rk8--ctrl-swap rd.lvm.lv=rl_rk8-ctrl/root rd.lvm.lv=rl_rk8-ctrl/swap" root="/dev/mapper/rl_rk8--ctrl-root" initrd="/boot/initramfs-5.14.0-503.14.1.el9_5.x86_64.img" title="Rocky Linux (5.14.0-503.14.1.el9_5.x86_64) 9.5 (Blue Onyx)" id="11732e333bc94575b1636210b0a72f03-5.14.0-503.14.1.el9_5.x86_64" 移除 grub2 參數 影響開機流程

Slide 107

Slide 107 text

https://www.digitimes.com.tw/tech/dt/n/shwnws.asp?id=0000378513_J7B63ZJC00KCSI4YOD46W

Slide 108

Slide 108 text

GPU Compute Mode •0: Default (Compute shared mode) 預設, 一 次可以執 行 多個程式 •1: Exclusive Thread (deprecated) 作 用 與 Exclusive Process 相同 •2: Prohibited 禁 止 在該卡執 行 任何計算程式 •3: Exclusive Process 獨佔模式,該卡只能 一 次執 行一 個程式 Multi-Process Service (MPS) 將使 用 這個 Time slicing 將使 用 這個

Slide 109

Slide 109 text

GPU Compute Mode Compute Mode The compute mode flag indicates whether individual or multiple compute applications may run on the GPU. "Default" means multiple contexts are allowed per device. "Exclusive Process" means only one context is allowed per device, usable from multiple threads at a time. "Prohibited" means no contexts are allowed per device (no compute apps). "EXCLUSIVE_PROCESS" was added in CUDA 4.0. Prior CUDA releases supported only one exclusive mode, which is equivalent to "EXCLUSIVE_THREAD" in CUDA 4.0 and beyond. For all CUDA-capable products.

Slide 110

Slide 110 text

GPU Compute Mode •使 用 nvidia-smi 指令設定 nvidia-smi -i 0 -c DEFAULT nvidia-smi -i 0 -c EXCLUSIVE_PROCESS 第幾張卡, index 從零開始 Compute Mode

Slide 111

Slide 111 text

https://www.youtube.com/watch?v=Di1hgIQhiG0

Slide 112

Slide 112 text

GPU可以幹嘛? •可以玩遊戲(誤) •可以跑 LLM •可以跑 AIGC

Slide 113

Slide 113 text

把玩開源 LLM •Gemma 採 用 與建 立 Gemini 模型時相同的研究成果和技術, 開源 LLM 模型 •Ollama https://ollama.com/ •Open webui https://openwebui.com/

Slide 114

Slide 114 text

AI 大 比拼

Slide 115

Slide 115 text

評選標準 •GPU 卡跑得動 •繁體中 文 •通 用 性佳

Slide 116

Slide 116 text

選 手 介紹 Gemma-7B TAIDE-LX-8B MR Breeze-7B TAIDE 計畫是由財團法 人 國 家實驗研究院 (國研院) 致 力 於開發符合台灣語 言 和 文 化特性的 生 成式 人工 智慧 對話引擎模型 基於 Llama3 開發並建置 聯發創新基地 (MediaTek Research) 基於 Mistral-7B 開發出 開源的 MediaTek Research Breeze-7B 模型 採 用 與建 立 Gemini 模型時 相同的研究成果和技術, 開源 LLM 模型 https://huggingface.co/chienweichang/Llama3-TAIDE-LX-8B-Chat-Alpha1-GGUF https://huggingface.co/MediaTek-Research/Breeze-7B-Instruct-v1_0 https://huggingface.co/google/gemma-7b

Slide 117

Slide 117 text

No content

Slide 118

Slide 118 text

No content

Slide 119

Slide 119 text

No content

Slide 120

Slide 120 text

No content

Slide 121

Slide 121 text

No content

Slide 122

Slide 122 text

No content

Slide 123

Slide 123 text

Q https://soco-st.com/18158