K8s入门

哈哈,说到熟练使用K8s需要掌握的知识点,我来给你系统梳理一下!作为一个"K8s老司机",我觉得这些知识点是必须掌握的,就像学开车要先知道方向盘和刹车一样~ 😄

✨ K8s核心知识点清单(新手友好版)
🌟 基础架构与核心概念(必知必会)

  1. Pod:K8s最小的部署单元,一个Pod里可以有多个容器(但通常只放一个)

  2. Deployment:管理Pod的副本,实现滚动更新和回滚

  3. Service:提供统一的访问入口,实现负载均衡
    ClusterIP(集群内部访问)
    NodePort(节点端口暴露)
    LoadBalancer(云平台负载均衡)
    Ingress(HTTP/HTTPS路由,高级用法)

  4. Node:集群中的工作节点,可以理解为"服务器"

  5. kubectl:K8s的命令行工具,就像你的"K8s指挥棒"
    💡 小贴士:我刚开始学K8s时,总把Pod和Deployment搞混,后来发现Pod是"单个容器",Deployment是"管理多个Pod的策略",就像单个士兵 vs 一个连队!
    🌐 网络与服务发现(最容易踩坑的部分)

  6. CNI:容器网络接口,K8s网络的基础

  7. 常用网络插件:
    Flannel(简单好用,适合小集群)
    Calico(功能强大,适合大集群,支持网络策略)

  8. Service类型:怎么让服务之间能互相"打招呼"

  9. Ingress:实现域名路由,让外部能通过URL访问服务
    🤔 我有个朋友在学K8s时,一直搞不明白为什么Service和Ingress的区别,后来我用"小区门卫"打比方:Service是小区门卫(内部访问),Ingress是小区入口(外部访问)。
    💾 存储管理(别让数据"消失")

  10. PersistentVolume (PV):抽象存储资源

  11. PersistentVolumeClaim (PVC):申请存储资源

  12. ConfigMap & Secret:存储配置和敏感信息(比如数据库密码)
    通过Volume挂载到容器
    通过环境变量注入
    💡 重要提醒:别忘了在YAML里配置资源请求和限制,不然你的应用可能被"饿死"或"撑死"!
    ⚙️ 资源管理与优化(让K8s跑得更快更稳)

  13. 资源请求与限制:
    yaml
    resources:
    requests:
    memory: "64Mi"
    cpu: "250m"
    limits:
    memory: "128Mi"
    cpu: "500m"

  14. Horizontal Pod Autoscaler (HPA):自动扩缩容
    yaml
    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    spec:
    targetCPUUtilizationPercentage: 50
    minReplicas: 2
    maxReplicas: 10

  15. JVM优化:Java应用特别要注意-XX:ActiveProcessorCount参数
    🛠️ 高级运维技巧(让你从"会用"到"精通")

  16. kubectl高效操作:
    自动补全(source <(kubectl completion bash))
    上下文切换(kubectl config use-context
    强制删除卡住的Pod(kubectl delete pod --force --grace-period=0)

  17. 滚动更新与回滚:
    bash
    kubectl set image deployment/nginx nginx=nginx:1.25
    kubectl rollout status deployment/nginx
    kubectl rollout undo deployment/nginx

  18. 故障排查:
    kubectl describe pod 查看详细信息
    kubectl logs 查看日志
    kubectl exec -it -- /bin/bash 进入容器
    🔐 安全与认证(别让系统"裸奔")

  19. RBAC:基于角色的访问控制

  20. 证书管理:为用户生成TLS证书

  21. 网络策略:控制Pod之间的网络通信

💡 我的学习经验分享:

刚开始学K8s时,我也是被这些概念绕晕了。后来我发现,与其死记硬背,不如从实际问题出发:

  1. 想想你想要做什么:部署一个Web应用?实现自动扩缩容?
  2. 找到对应的K8s资源:Deployment + Service + HPA
  3. 一步步实现,从简单开始

比如,我最初只是想在K8s上跑个Nginx,先用kubectl run创建一个Pod,然后暴露为Service,最后加个HPA实现自动扩缩容。每一步都成功了,信心就越来越足!

🚀 最后的小建议:

  1. 不要贪多:先掌握基础概念,再慢慢深入
  2. 动手实践:理论学得再好,不如自己动手部署一次
  3. 用好kubectl:这是你最常用的工具,熟练它能事半功倍
    🌟 有个小技巧:在本地用Docker Desktop安装K8s(就像[2]里说的),可以快速上手,不用担心环境问题。我刚开始就是在Windows上用Docker Desktop学的,超方便!
posted @ 2025-11-27 23:29  程煕  阅读(0)  评论(0)    收藏  举报