Skip to content

2024年8月2日工作任务安排

1. 学习 Docker 的基本概念和使用方法

  • 任务内容:

    • 了解 Docker 的核心概念,如镜像(Image)、容器(Container)、仓库(Registry)等。
    • 学习 Docker 的基本命令,如 docker builddocker rundocker psdocker stop 等。
    • 熟悉 Docker 的常用操作,例如创建和管理容器、持久化数据、网络配置等。
  • 学习资源:

  • 示例代码:

    bash
    # 构建镜像
    docker build -t my-spring-boot-app .
    
    # 运行容器
    docker run -d -p 8080:8080 --name my-running-app my-spring-boot-app
    
    # 列出正在运行的容器
    docker ps
    
    # 停止容器
    docker stop my-running-app

2. 将 Spring Boot 应用容器化

  • 任务内容:

    • 编写 Dockerfile 文件,为 Spring Boot 应用创建 Docker 镜像。
    • 使用 Docker 构建镜像,并运行 Spring Boot 容器。
    • 验证容器化后的 Spring Boot 应用是否正常运行。
  • 参考资料:

  • 示例代码:

    Dockerfile:

    Dockerfile
    # 基础镜像
    FROM openjdk:11-jre-slim
    
    # 添加 jar 文件到容器中
    COPY target/my-spring-boot-app.jar /app.jar
    
    # 运行 jar 文件
    ENTRYPOINT ["java", "-jar", "/app.jar"]

    构建和运行镜像:

    bash
    # 在项目根目录下运行以下命令
    
    # 构建 Docker 镜像
    docker build -t my-spring-boot-app .
    
    # 运行容器
    docker run -d -p 8080:8080 --name my-running-app my-spring-boot-app

3. 学习 Kubernetes 的基本概念和使用方法

  • 任务内容:

    • 了解 Kubernetes 的核心概念,如 Pod、Service、Deployment、Namespace 等。
    • 学习 Kubernetes 的基本命令,如 kubectl applykubectl getkubectl describekubectl delete 等。
    • 熟悉 Kubernetes 的常用操作,例如创建和管理 Pod、Service、Deployment、进行滚动更新等。
  • 学习资源:

  • 示例代码:

    bash
    # 创建一个 Pod
    kubectl run my-pod --image=my-spring-boot-app --port=8080
    
    # 获取所有 Pod
    kubectl get pods
    
    # 获取 Pod 的详细信息
    kubectl describe pod my-pod
    
    # 删除 Pod
    kubectl delete pod my-pod

4. 在 Kubernetes 集群中部署容器化应用

  • 任务内容:

    • 编写 Kubernetes 配置文件(YAML 文件),定义 Pod、Service、Deployment 等资源。
    • 使用 kubectl 命令将容器化的 Spring Boot 应用部署到 Kubernetes 集群中。
    • 验证应用在 Kubernetes 集群中的运行状态,并进行必要的调试和优化。
  • 参考资料:

  • 示例代码:

    deployment.yaml:

    yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-spring-boot-app
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: my-spring-boot-app
      template:
        metadata:
          labels:
            app: my-spring-boot-app
        spec:
          containers:
          - name: my-spring-boot-app
            image: my-spring-boot-app:latest
            ports:
            - containerPort: 8080

    service.yaml:

    yaml
    apiVersion: v1
    kind: Service
    metadata:
      name: my-spring-boot-app-service
    spec:
      selector:
        app: my-spring-boot-app
      ports:
        - protocol: TCP
          port: 80
          targetPort: 8080
      type: LoadBalancer

    应用配置文件并部署:

    bash
    # 创建 Deployment
    kubectl apply -f deployment.yaml
    
    # 创建 Service
    kubectl apply -f service.yaml
    
    # 查看 Deployment 和 Service
    kubectl get deployments
    kubectl get services