摘要:在阿里云上使用 Kubernetes(ACK,阿里云容器服务 Kubernetes 版)部署微服务,可以遵循以下步骤:
在阿里云上使用 Kubernetes(ACK,阿里云容器服务 Kubernetes 版)部署微服务,可以遵循以下步骤:
1. 准备工作
注册阿里云账号:确保已开通容器服务 ACK、容器镜像服务 ACR 等产品。开通相关服务:进入阿里云控制台,开通容器服务 Kubernetes 版(ACK)、容器镜像服务(ACR)、弹性计算(ECS)等。环境准备:Ø 安装 kubectl(Kubernetes 命令行工具)。
Ø 安装 aliyun CLI 或使用阿里云控制台操作。
2. 创建 Kubernetes 集群
进入 ACK 控制台:https://cs.console.aliyun.com创建集群:Ø 选择集群类型:标准托管集群、Serverless 集群等。
Ø 配置节点:
选择地域和可用区。
设置 Worker 节点规格(ECS 实例类型)、数量(如 2-4 个节点)。
3.配置网络(VPC、虚拟交换机、Pod 网络 CIDR)。
Ø 确认配置并创建集群(约 5-10 分钟)。
3. 容器化微服务
编写 dockerfile:dockerfile
FROM openjdk:11-jre-slim # 示例为 Java 应用
COPY target/*.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
构建镜像并推送到 ACR:bash
# 登录 ACR(容器镜像服务)
docker login --username= registry..aliyuncs.com
# 构建镜像并打标签
docker build -t registry..aliyuncs.com//:v1 .
# 推送镜像到 ACR
docker push registry..aliyuncs.com//:v1
4. 部署微服务到 ACK
配置 Kubernetes 部署文件(deployment.yaml):yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: user-service
spec:
replicas: 2
selector:
matchLabels:
app: user-service
template:
metadata:
labels:
app: user-service
spec:
containers:
- name: user-service
image: registry..aliyuncs.com//:v1
ports:
- containerPort: 8080
resources:
limits:
cpu: "1"
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: user-service
spec:
selector:
app: user-service
ports:
- port: 80
targetPort: 8080
type: LoadBalancer # 阿里云会自动创建 SLB(公网/私网负载均衡)
部署到集群:bash
# 配置集群凭证(通过控制台获取kubeconfig)
aliyun cs GET /k8s//user_config | tee ~/.kube/config
# 应用部署文件
kubectl apply -f deployment.yaml
5. 配置网络与网关
Ingress 配置(可选):使用阿里云 SLB + Ingress Controller(如 Nginx)暴露服务。
yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /user
pathType: Prefix
backend:
service:
name: user-service
port:
number: 80
6. 配置存储与配置
ConfigMap/Secrets:管理微服务配置(如数据库连接信息):
bash
kubectl create configmap app-config --from-file=config.properties
持久化存储:使用阿里云 NAS、OSS 或云盘(PV/PVC):
yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
storageClassName: alicloud-disk # 使用云盘
7. 监控与日志
阿里云 ARMS(应用实时监控服务):集成 Prometheus 监控微服务性能。日志服务 SLS:
通过 Logtail 采集容器日志:
yaml
# 在 Deployment 中添加 sidecar 或 DaemonSet 采集日志
8. 自动扩缩容
HPA(Horizontal Pod Autoscaler):bash
kubectl autoscale deployment user-service --cpu-percent=50 --min=2 --max=10
集群节点弹性伸缩:在 ACK 控制台配置节点自动扩缩容策略。
9. 持续集成/持续部署(CI/CD)
使用阿里云云效:配置流水线自动构建镜像并部署到 ACK。GitHub Actions 示例:
yaml
jobs:
deploy:
steps:
- name: Deploy to ACK
run: |
kubectl set image deployment/user-service user-service=registry.cn-hangzhou.aliyuncs.com/my-ns/user-service:${{ github.sha }}
常见问题
镜像拉取失败:Ø 检查 ACR 权限(为 Worker 节点绑定 RAM 角色或配置镜像拉取密钥)。
服务无法访问:Ø 检查 Service 的 type(LoadBalancer/Ingress)和 Security Group 规则。
资源不足:Ø 调整节点规格或启用弹性伸缩。
通过以上步骤,您可以在阿里云 ACK 上快速部署和管理微服务架构。结合阿里云生态工具(如 ARMS、SLS、ACR),可实现完整的 DevOps 流程。
来源:老客数据一点号