什么是ACK
容器服務Kubernetes版(Alibaba Cloud Container Service for Kubernetes,簡稱容器服務ACK)提供高性能可伸縮的容器應用管理服務,支持企業級Kubernetes容器化應用的生命周期管理。
ACK部署
- 資源準備
100個大洋,用于購買阿里云ack服務(需要賬戶 >=100 才能創建阿里云 ack集群)
- 采購一覽
自己采購ECS搭建的話可以參考這個配置,使用ack搭建的話選最便宜的就行了,僅用于測試(搭建時node可選最低4C8G)
- ack入口
- 控制臺搜索:容器服務 kubernetes 版
- 創建集群
集群配置
- 創建專有版
- 創建專有網絡
創建vpc+交換機
- 配置NAT
最好開放SSH公網訪問,當然用cloud cli管理也行
master配置
測試 2核4G+100G怎么都夠用了
節點池配置
這里最低只能選4C8G了
- 配置節點實例,可以選多個,會根據庫存按順序采購
- 配置操作系統,沒有密鑰對創建一個就行
生成的密鑰對保存好,后面本地訪問集群可以用到
組件配置
丐中丐就行了
資源確認
未通過的重新配置一下就行了。 重要的是充錢你才能變強
一套下來基本上不到5塊錢1個小時,測試1天小幾十塊就夠了,測試完記得刪除集群避免持續扣費
點擊創建,等待10分鐘左右就行了,如果未創建成功先重試一下,有極小概率創建失敗的。
集群訪問
- 配置本地SSH訪問: 集群詳情->連接信息->SSH
會隨機連接到一個master節點,連接上之后就可以使用kubectl命令進行集群管理了
- 使用密鑰對訪問(創建集群過程中會創建密鑰對)
- 配置公網訪問
將下面的憑證,或者臨時生成的憑證復制到 ~/.kube/config
文件里,之后通過本地的 kubectl(如果本地安裝了的話)就可以訪問了
集群管理
接下來都是通過本地的 kubectl 訪問集群,本地未安裝可以直接連接集群操作
- 部署pod
模擬生產環境,創建兩個deployment,每組10個副本。
創建部署文件:nginx-busybox.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deploy
namespace: default
spec:
replicas: 10
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-pod
image: nginx:latest
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: busybox
namespace: default
spec:
replicas: 10
selector:
matchLabels:
app: busybox
template:
metadata:
labels:
app: busybox
spec:
containers:
- name: busybox-pod
image: busybox:latest
command:
- sleep
- "3600"
使用yaml文件創建部署:
kubectl create -f <your.yaml>
- 檢查部署情況
kubectl get pod -o wide
或者用:kubectl get pods -l app=<app name>
查找指定的應用
查看某個pod的詳細信息:
kubectl describe pod
- 刪除節點
使用 kubectl drain
從節點安全地逐出所有 Pods。 安全的驅逐過程允許 Pod 的容器 體面地終止
kubectl drain <node name>--delete-local-data --force --ignore-daemonsets
eg: 刪除節點:cn-chengdu.172.19.138.34
節點刪除后pod將在其他節點重新部署
參考:
k8s文檔:https://kubernetes.io/zh-cn/docs/tasks/run-application/run-stateless-application-deployment/