Files

Walmart Card Service Kubernetes 部署指南

概述

本目录包含了将Walmart Card Service部署到Kubernetes集群所需的所有配置文件。

文件说明

  • deployment.yaml: 定义应用的部署配置,包括副本数、容器镜像、资源限制等
  • service.yaml: 定义如何暴露应用服务
  • configmap.yaml: 存储应用的环境变量配置
  • ingress.yaml: 配置外部访问应用的路由规则
  • secret.yaml: 存储Docker镜像仓库的凭证
  • kustomization.yaml: 管理和组织所有Kubernetes资源

部署前准备

  1. 确保已安装并配置kubectl工具并且可以连接到Kubernetes集群
  2. 修改配置文件中的占位符:
    • deployment.yaml中,将${DOCKER_REGISTRY}替换为实际的Docker镜像仓库地址
    • ingress.yaml中,将walmart-card.example.com替换为实际的域名
    • secret.yaml生成并替换Docker仓库凭证

生成Docker仓库凭证

使用以下命令生成Docker仓库凭证

kubectl create secret docker-registry registry-credentials \
  --docker-server=git.kkknametrans.buzz \
  --docker-username=<username> \
  --docker-password=<password> \
  --dry-run=client -o yaml > secret.yaml

部署应用

使用kubectl直接部署

# 创建命名空间(如果需要)
kubectl create namespace walmart-card

# 应用所有配置文件
kubectl apply -f k8s/ -n walmart-card

使用kustomize部署

# 预览将要应用的配置
kubectl kustomize k8s/

# 应用配置
kubectl apply -k k8s/ -n walmart-card

验证部署

# 检查Pod状态
kubectl get pods -n walmart-card

# 检查Service状态
kubectl get svc -n walmart-card

# 检查Ingress状态
kubectl get ingress -n walmart-card

# 查看应用日志
kubectl logs -f deployment/walmart-card-service-prod -n walmart-card

环境变量配置

应用的环境变量配置存储在ConfigMap中可以通过以下命令查看

kubectl get configmap walmart-card-service-config-prod -n walmart-card -o yaml

要修改环境变量,可以编辑configmap.yaml文件,然后重新应用:

kubectl apply -f k8s/configmap.yaml -n walmart-card

或者直接使用kubectl编辑

kubectl edit configmap walmart-card-service-config-prod -n walmart-card

修改环境变量后需要重启Pod以使更改生效

kubectl rollout restart deployment walmart-card-service-prod -n walmart-card

故障排除

如果应用无法正常启动或运行,可以尝试以下步骤:

  1. 检查Pod状态和日志
  2. 确认ConfigMap中的环境变量配置正确
  3. 验证Secret中的Docker仓库凭证是否有效
  4. 检查Ingress配置和DNS设置