or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
混亂中的和諧:Kubernetes、DevOps 和 SRE - Patrickuuuu
tags:
SITCON 2024 共筆
SITCON 2024
2024
共筆
軟體開發
新手適合
R0
歡迎大家來到SITCON 2024 ヽ(✿゚▽゚)ノ
共筆入口:https://hackmd.io/@SITCON/2024
手機版請點選上方 按鈕展開議程列表。
簡報:
QA
想要在最後K8s時間一起動手做的可以安裝以下軟體
1. Kubectl
在 Windows 安裝 kubectl
在 macOS 安裝 kubectl
在 Linux 安裝 kubectl
成功安裝後在終端機執行
kubectl version --client
應該可以看到Client Version: …
Kustomize Version: …
2. Docker Desktop
在 Windows 安裝 Docker Desktop
在 macOS 安裝 Docker Desktop
在 Linux 安裝 Docker Desktop
3. 開啟 Docker Desktop Kubernetes
開啟 Docker Desktop,點擊右上角設定進到Settings,點擊左邊第四項Kubernetes,勾選
Enable Kubernetes
,最後點選Apply & restart
,重啟後應該可以在最左下角看到Kubernetes running
4. 確認 Contexts 在正確的位置
執行

kubectl config get-contexts
應該要顯示 docker-desktop 的 CURRENT 為 * 才是正確的
如果不在正確的 context 上,則執行

kubectl.exe config use-context docker-desktop
切換至docker-desktop
5. 下載 deployment 的 YAML 檔
GitHub 連結
下載
frontend.yaml
以及backend.yaml
以下會在議程中一起操作,怕跟不上的也可以先玩玩看
6. 在 K8s 部署 deployment
部署前端
kubectl apply -f frontend.yaml
部署後端
kubectl apply -f backend.yaml
7. 檢查 deploymeny 部署情況
列出所有在 default namespace 的 deployment
kubectl get deploy -n default
列出 frontend deployment 的 詳細資訊
kubectl describe deploy frontend -n default
列出 backend deployment 的 詳細資訊
kubectl describe deploy frontend -n default
列出所有 pods
`kubectl get pods -n default
8. 成功部署 Grapycal 在本地的 K8s 了!
訪問 http://localhost:8766
9. 檢查 pods
kubectl get pods -n default
刪除backend其中一個看看
kubectl delet pod grapycal-backend-xxx-xx
檢查目前 pods 狀況
kubectl get pods -n default
10. 更新 image
將 frontend.yaml 中
docker.io/patrickuuuu/grapycal-frontend:latest
改為docker.io/grapycal/grapycal-frontend:latest
將 backend.yaml 中
docker.io/patrickuuuu/grapycal-backend:latest
改為docker.io/grapycal/grapycal-workspace:latest
重新 apply
kubectl apply -f frontend.yaml
kubectl apply -f backend.yaml
等待更新過程中可以檢查看deployment 的可用性
kubectl get pods -n default
DevOps
Develop
Operations
→ 能動就不要動!
→ DevOps
開發人員也要有維運的概念
DevOps 的階段
計畫 Plan
程式碼 Code
建置 Build
測試 Test
發布 Release
部署 Deploy
Powershell 也算操作/維運 Operate
監控 Monitor
DevOps lifecycle
自動化
把重複的事情交給機器去做
CI/CD
Continuous Integration(CI) 持續整合
Continuous Deployment(CD) 持續部署
Continuous Delivery 持續交付
手動部署至生產環境
Continuous Deployment
CI/CD 跟 DevOps 的關係
DevOps 原則
如何評斷應用程式的服務水準?
SRE 的專有名詞
SLI 服務水準指標
SLO 服務水準目標
SLA 服務水準協議
SRE在做什麼?
跟 DevOps 是不是很像?
DevOps 是想法、SRE 是 DevOps 的一種實現
Kubernetes
自動化部署擴展與管理容器的開源管理系統
Node
Master node
負責發號施令的中樞
Worker node
Deployment 是 pod 的封裝
為什麼要用DevOps
根本原因