什么是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/