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

一、学习目标
了解Kubernetes的高级特性(ConfigMap、Secret、Ingress)。
掌握如何使用ConfigMap和Secret管理配置和敏感信息。
学习如何使用Ingress实现外部访问和负载均衡。
了解Kubernetes监控和日志管理的基本方法。
通过实际练习,部署一个带监控和日志管理的Spring Boot应用。
二、学习内容
(一)ConfigMap和Secret

  1. ConfigMap
    用途:用于存储非敏感的配置信息,如配置文件、环境变量等。
    创建ConfigMap:
    bash

kubectl create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2
在Pod中使用ConfigMap:
yaml

apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:

  • name: my-container
    image: my-image
    env:
    • name: KEY1
      valueFrom:
      configMapKeyRef:
      name: my-config
      key: key1
  1. Secret
    用途:用于存储敏感信息,如密码、证书等。
    创建Secret:
    bash

kubectl create secret generic my-secret --from-literal=password=yourpassword
在Pod中使用Secret:
yaml

apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:

  • name: my-container
    image: my-image
    env:
    • name: PASSWORD
      valueFrom:
      secretKeyRef:
      name: my-secret
      key: password
      (二)Ingress
  1. Ingress简介
    Ingress是一个API对象,用于管理外部访问Kubernetes服务的规则。
    它支持负载均衡、SSL终止和基于名称的虚拟主机。
  2. 创建Ingress
    Ingress YAML文件:
    yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:

  • host: myapp.example.com
    http:
    paths:
    • path: /
      pathType: Prefix
      backend:
      service:
      name: my-service
      port:
      number: 80
      部署Ingress:
      bash

kubectl apply -f my-ingress.yaml
(三)监控和日志管理

  1. 监控(Prometheus)
    Prometheus是一个开源的监控系统,支持时间序列数据的收集和查询。
    部署Prometheus:
    bash

kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/master/bundle.yaml
配置Prometheus监控目标:
yaml

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
name: my-prometheus
spec:
serviceMonitorSelector:
matchLabels:
team: frontend
2. 日志管理(ELK Stack)
ELK Stack(Elasticsearch、Logstash、Kibana)是一个流行的日志管理解决方案。
部署ELK Stack:
bash

kubectl apply -f https://raw.githubusercontent.com/elastic/cloud-on-k8s/master/deploy/kubernetes.yaml
配置日志收集:
yaml

apiVersion: logging.k8s.io/v1
kind: Logstash
metadata:
name: my-logstash
spec:
pipeline: |
input { file { path => "/var/log/*.log" } }
output { elasticsearch { hosts => ["http://elasticsearch:9200"] } }
(四)实际练习:部署一个带监控和日志管理的Spring Boot应用

  1. 创建Spring Boot应用
    使用Spring Initializr生成一个Spring Boot项目。
  2. 配置ConfigMap和Secret
    创建ConfigMap和Secret,用于管理配置和敏感信息。
  3. 部署应用
    创建Deployment和Service YAML文件,部署应用到Kubernetes。
  4. 配置Ingress
    创建Ingress规则,允许外部访问应用。
  5. 部署监控和日志管理
    部署Prometheus和ELK Stack,配置监控和日志收集。
  6. 运行和测试
    访问应用,验证监控和日志管理是否正常工作。
    三、学习心得
    ConfigMap和Secret的作用
    ConfigMap和Secret用于管理配置和敏感信息,确保应用的可移植性和安全性。
    它们支持动态更新配置,无需重新部署应用。
    Ingress的用途
    Ingress提供了一个统一的入口点,用于管理外部访问和负载均衡。
    它支持基于域名和路径的路由规则,适合微服务架构。
    监控和日志管理的重要性
    Prometheus和ELK Stack提供了强大的监控和日志管理功能,帮助开发者快速定位问题。
    它们支持实时监控和历史数据分析,适合生产环境。
    实践的重要性
    通过实际部署一个带监控和日志管理的Spring Boot应用,我更好地理解了Kubernetes的高级特性。
    实践可以帮助快速发现和解决问题,加深对知识点的理解。
posted @ 2025-02-19 23:55  头发少的文不识  阅读(11)  评论(0)    收藏  举报