2月2日java假期学习读书笔记
一、学习目标
了解Kubernetes的基本概念和架构。
掌握Kubernetes的核心组件(如Pod、Deployment、Service)。
学习如何将Spring Boot应用部署到Kubernetes集群。
通过实际练习,部署一个Spring Boot应用到本地Kubernetes环境。
理解Kubernetes在微服务架构中的作用。
二、学习内容
(一)Kubernetes基础
- Kubernetes简介
Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。
它由Google发起,现由Cloud Native Computing Foundation(CNCF)维护。 - Kubernetes架构
Master节点:管理集群的控制平面,包括API Server、Controller Manager、Scheduler等。
Worker节点:运行容器的节点,包含Kubelet、Kube-proxy等组件。
Pod:Kubernetes的最小部署单元,可以包含一个或多个容器。
Service:用于访问Pod的抽象层,提供负载均衡和网络代理。
Deployment:用于管理Pod的副本,确保指定数量的Pod运行。 - 安装Kubernetes
Minikube:用于本地开发的轻量级Kubernetes环境。
bash
安装Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
启动Minikube
minikube start
kubectl:Kubernetes的命令行工具,用于管理集群。
bash
安装kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
(二)Spring Boot应用的Kubernetes部署
- 准备Spring Boot应用
确保Spring Boot应用可以正常运行,并打包为JAR文件。
构建Docker镜像并推送到Docker Hub(或本地仓库):
bash
docker build -t your-docker-id/your-application:latest .
docker push your-docker-id/your-application:latest
2. 创建Kubernetes部署文件
Deployment YAML文件:
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-application
spec:
replicas: 1
selector:
matchLabels:
app: your-application
template:
metadata:
labels:
app: your-application
spec:
containers:
- name: your-application
image: your-docker-id/your-application:latest
ports:
- containerPort: 8080
Service YAML文件:
yaml
apiVersion: v1
kind: Service
metadata:
name: your-application-service
spec:
selector:
app: your-application
ports:
- protocol: TCP
port: 80
targetPort: 8080
type: LoadBalancer
3. 部署到Kubernetes
使用kubectl命令部署应用:
bash
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
4. 验证部署
查看Pod状态:
bash
kubectl get pods
查看Service状态:
bash
kubectl get services
访问应用(通过Service的外部IP或Minikube的IP):
bash
minikube service your-application-service
(三)实际练习:部署一个Spring Boot应用到Kubernetes
- 启动Minikube
bash
minikube start
2. 部署应用
构建Docker镜像并推送到本地仓库。
创建Deployment和Service的YAML文件。
使用kubectl apply命令部署应用。
3. 运行和测试
访问应用,验证是否正常运行。
使用kubectl logs查看应用日志,排查问题。
三、学习心得
Kubernetes的优势
Kubernetes提供了强大的容器编排能力,支持自动部署、扩展和管理容器化应用。
它支持高可用性和弹性扩展,非常适合微服务架构。
核心组件的作用
Pod:Kubernetes的最小部署单元,可以包含一个或多个容器。
Deployment:用于管理Pod的副本,确保应用的高可用性。
Service:提供负载均衡和网络代理,方便服务之间的通信。
实践的重要性
通过实际部署Spring Boot应用到Kubernetes,我更好地理解了Kubernetes的使用方法。
实践可以帮助快速发现和解决问题,加深对知识点的理解。
浙公网安备 33010602011771号