第一周学习总结

一、学习目标
了解Kubernetes的资源管理特性(HPA、Resource Quotas、Namespace)。
掌握如何使用Horizontal Pod Autoscaler(HPA)自动扩展Pod。
学习如何使用Resource Quotas管理资源配额。
二、学习内容
(一)Horizontal Pod Autoscaler(HPA)

  1. HPA简介
    HPA是Kubernetes的自动扩展功能,可以根据CPU使用率或其他自定义指标自动调整Pod副本的数量。
    它支持水平扩展,适用于负载变化较大的应用。
  2. 创建HPA
    HPA YAML文件:
    yaml
    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
    name: my-hpa
    spec:
    scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-deployment
    minReplicas: 2
    maxReplicas: 10
    metrics:
    • type: Resource
    resource:
    name: cpu
    target:
    type: Utilization
    averageUtilization: 50
    部署HPA:
    bash
    kubectl apply -f my-hpa.yaml
    (二)Resource Quotas
  3. Resource Quotas简介
    Resource Quotas用于限制命名空间(Namespace)中的资源使用量,如CPU、内存、Pod数量等。
    它可以帮助避免资源滥用,确保集群的稳定运行。
  4. 创建Resource Quotas
    Resource Quotas YAML文件:
    yaml
    apiVersion: v1
    kind: ResourceQuota
    metadata:
    name: my-resource-quota
    namespace: my-namespace
    spec:
    hard:
    pods: "10"
    requests.cpu: "2"
    requests.memory: "1Gi"
    limits.cpu: "4"
    limits.memory: "2Gi"
    部署Resource Quotas:
    bash
    kubectl apply -f my-resource-quota.yaml
    (三)Namespace
  5. Namespace简介
    Namespace用于将集群资源划分为多个虚拟子集群,便于资源隔离和管理。
    它支持多租户环境,适用于开发、测试和生产环境的隔离。
  6. 创建Namespace
    Namespace YAML文件:
    yaml
    apiVersion: v1
    kind: Namespace
    metadata:
    name: my-namespace
    部署Namespace:
    bash
    kubectl apply -f my-namespace.yaml
    (四)CI/CD集成(GitLab CI/GitHub Actions)
  7. GitLab CI
    GitLab CI是一个集成的CI/CD工具,支持自动化构建、测试和部署。
    配置GitLab CI:
    在项目根目录下创建.gitlab-ci.yml文件:
    yam
    stages:
    • build
    • deploy
    build:
    stage: build
    script:
  • mvn clean package
    deploy:
    stage: deploy
    script:
  • kubectl apply -f deployment.yaml
  1. GitHub Actions
    GitHub Actions是一个自动化工具,支持CI/CD流程。
    配置GitHub Actions:
    在项目根目录下创建.github/workflows/main.yml文件:
    yaml
    name: CI/CD Pipeline
    on: [push]
    jobs:
    build:
    runs-on: ubuntu-latest
    steps:
  • uses: actions/checkout@v2
  • name: Set up JDK 11
    uses: actions/setup-java@v2
    with:
    java-version: '11'
  • name: Build with Maven
    run: mvn clean package
    deploy:
    runs-on: ubuntu-latest
    steps:
  • name: Deploy to Kubernetes
    run: kubectl apply -f deployment.yaml
    (五)实际练习:部署一个自动扩展的Spring Boot应用
  1. 创建Namespace
    创建一个Namespace,用于隔离资源。
  2. 部署应用
    创建Deployment和Service YAML文件,部署Spring Boot应用。
  3. 创建HPA
    创建HPA YAML文件,配置自动扩展规则。
  4. 运行和测试
    部署应用和HPA,通过负载测试验证自动扩展功能。
    三、学习心得
    HPA的作用
    HPA可以根据负载自动调整Pod副本数量,确保应用的高可用性和性能。
    它支持灵活的扩展策略,适用于动态负载的应用。
    Resource Quotas的重要性
    Resource Quotas可以限制资源使用量,避免资源滥用,确保集群的稳定运行。
    它支持细粒度的资源管理,适用于多租户环境。
    Namespace的用途
    Namespace用于资源隔离和管理,便于开发、测试和生产环境的划分。
    它支持多租户环境,确保资源的安全性和独立性。
    CI/CD集成的优势
    GitLab CI和GitHub Actions提供了强大的自动化能力,支持持续集成和持续部署。
    它们可以自动化构建、测试和部署流程,提高开发效率和代码质量。
    实践的重要性
    通过实际部署一个自动扩展的Spring Boot应用,我更好地理解了Kubernetes的资源管理特性。
    实践可以帮助快速发现和解决问题,加深对知识点的理解。
posted @ 2025-06-15 19:07  执笔诉相思  阅读(6)  评论(0)    收藏  举报