2月5日java假期学习读书笔记

一、学习目标
了解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

  1. Resource Quotas简介
    Resource Quotas用于限制命名空间(Namespace)中的资源使用量,如CPU、内存、Pod数量等。
    它可以帮助避免资源滥用,确保集群的稳定运行。
  2. 创建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

  1. Namespace简介
    Namespace用于将集群资源划分为多个虚拟子集群,便于资源隔离和管理。
    它支持多租户环境,适用于开发、测试和生产环境的隔离。
  2. 创建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)

  1. 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
2. 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-02-19 23:58  头发少的文不识  阅读(16)  评论(0)    收藏  举报