一、项目准备:Docker 镜像构建
openjdk:17-jdk-alpine、nginx:latest等)保证镜像安全轻量示例(Java Spring Boot 应用):
# Builder 阶段
FROM maven:3.8.7-openjdk-17 AS builder
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn clean package -DskipTests
# 运行阶段
FROM openjdk:17-jdk-alpine
WORKDIR /app
COPY --from=builder /app/target/app.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]docker build -t your-registry.com/your-project/app:v1.0 .
docker push your-registry.com/your-project/app:v1.0推荐使用私有仓库(如 Harbor、Docker Hub私有库)保障镜像安全,镜像版本务必规范管理。
定义应用的副本数、更新策略、容器镜像和环境变量。
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
labels:
app: app
spec:
replicas: 3
selector:
matchLabels:
app: app
template:
metadata:
labels:
app: app
spec:
containers:
- name: app-container
image: your-registry.com/your-project/app:v1.0
ports:
- containerPort: 8080
env:
- name: SPRING_PROFILES_ACTIVE
value: "prod"
imagePullSecrets:
- name: regcred # 如果使用私有仓库,需提前创建 secret将 Deployment 暴露为集群内服务或外部访问接口。
apiVersion: v1
kind: Service
metadata:
name: app-service
spec:
type: ClusterIP
selector:
app: app
ports:
- port: 80
targetPort: 8080通过设置
type: LoadBalancer或结合 Ingress,实现外部访问。
kubectl apply -f deployment.yaml
kubectl apply -f service.yamlkubectl rollout status deployment/app-deployment观察 Pod 是否成功启动,副本是否就绪。
修改 Deployment 中镜像版本:
kubectl set image deployment/app-deployment app-container=your-registry.com/your-project/app:v1.1kubectl rollout undo deployment/app-deployment示例 ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
application.properties: |
server.port=8080
logging.level.root=INFO将 ConfigMap 挂载到容器:
volumeMounts:
- name: config-volume
mountPath: /app/config
volumes:
- name: config-volume
configMap:
name: app-config基于 CPU 使用率或自定义指标,实现自动副本伸缩。
kubectl autoscale deployment app-deployment --min=2 --max=10 --cpu-percent=60Kubernetes 服务部署流程看似繁琐,但只要掌握镜像构建、Deployment 与 Service 资源定义及管理技巧,结合配置管理与自动扩缩容,能有效保证应用的高可用和易维护。随着生态完善,相关CI/CD流程自动化也日益成熟,是提升团队交付效率的关键所在。
END
本文分享自 DevOps和k8s全栈技术 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!