阿里云K8s部署微服务教程

B站影视 韩国电影 2025-04-12 16:23 1

摘要:在阿里云上使用 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 流程。

来源:老客数据一点号

相关推荐