序言

    自建的 k8s 集群有很多种方式部署方式,k8s 知识库将列举手工二进制部署与各种辅助工具部署的方法,可以根据自己使用场景选择对应合适的部署方法。除此之外,还会包含大量的常用应用的部署方法,比如各种数据库和存储基础设施部署,不同的业务场景和解决方案都可能依赖这些应用,每种应用部署方法都可能被书内其它多处地方引用。

    集群方案

    k8s 拥有惊人的扩展能力,针对不同环境和场景可以使用不同的方案,涵盖网络、存储、运行时、Ingress、Metrics 等。k8s 知识库会帮助你彻底理清这些机制,并深入剖析各种方案的原理、用法与使用场景。

      • 彻底理解集群网络
      • Network Policy
      • 开源网络方案
      • Flannel
        • Flannel 网络原理
      • Macvlan
      • Calico
      • Cilium
      • Kube-router
      • Kube-OVN
      • OpenVSwitch
    • 运行时方案
      • Docker
        • Docker 介绍
        • Docker 安装
      • CRI-O
        • CRI-O 介绍
        • CRI-O 安装
    • 存储方案
      • Rook
      • OpenEBS
    • Ingress 方案
    • LoadBalancer 方案
      • MetalLB
    • Metrics 方案

    k8s 有先进的设计理念,也包含了大量概念,并提供了非常丰富的能力,用法琳琅满目,但入门比较困难,k8s 知识库将提供使用 k8s 的各种场景里的最佳实践,帮助大家少走弯路,比如如何管理和运维集群、如何进行动态伸缩、如何保证部署的服务高可用、如何在更新服务或扩缩容节点保证业务零感知、如何部署有状态服务、如何针对大规模集群进行优化、如何对资源进行隔离和共享以及针对各种需求和问题的解决方案等。

    • 服务高可用
    • 泛域名动态转发 Service
    • 有状态服务部署
    • 集群证书管理
    • 集群配置管理
      • Helm
      • Kustomize
        • Kustomize 基础入门
    • 弹性伸缩
      • 使用 HPA 对 Pod 水平伸缩
      • 使用 VPA 对 Pod 垂直伸缩
      • 使用 Cluster Autoscaler 对节点水平伸缩
    • 资源分配与限制
    • Master 高可用
    • 资源隔离与共享
      • 利用 kata-container 隔离容器资源
      • 利用 gVisor 隔离容器资源
      • 利用 lvm 和 xfs 实现容器磁盘隔离
      • 利用 lxcfs 隔离 proc 提升容器资源可见性
      • 共享存储
      • 共享内存
    • Pod 原地重启
    • 集群升级
    • 固定 IP
    • 备份与恢复
    • ETCD 性能优化
    • 内核参数优化
    • CPU 亲和性
    • 使用大页内存
    • 离在线混合部署
    • 集群监控
      • Prometheus
      • Grafana
    • 日志搜集
      • EFK/ELK
    • 集群安全
      • 使用 PodSecurityPolicy 配置全局 Pod 安全策略
      • 集群审计
    • 集群可视化管理
      • Kubernetes Dashboard
      • KubSphere
      • Weave Scope
      • Rancher
      • Kui
      • Kubebox
    • 集群镜像管理
      • Harbor
      • Dragonfly
      • Kaniko
      • kpack

    排错指南

    k8s 在各个领域都发挥了巨大作用,我们会将 k8s 在这些领域的应用汇总,给出各种场景化应用的指南,比如近年来如火如荼的 DevOps 领域,其中 CI/CD 的应用更是大家迫切期望想要的。还有 AI,大数据,微服务架构,Service Mesh,Serverless 等。

    • 微服务架构
      • 服务发现
      • 服务治理
      • 分布式追踪
        • Jaeger
    • Service Mesh
      • Istio
      • Maesh
      • Kuma
    • Serverless
      • Knative
      • Kubeless
      • Fission
    • DevOps
      • Jenkins X
      • Tekton
      • Argo
      • GoCD
      • Argo
      • GitLab CI
      • Drone
    • AI
      • nvidia-docker
      • Kubeflow
    • 大数据
      • Spark on K8S
      • Hadoop on K8S

    开发指南

    k8s 开放了很多扩展能力,基于这些扩展机制可以开发出各种功能的应用,比如集群管理应用、部署有状态服务的应用(Operator)等,知识库将介绍如何开发这些应用。

    • 开发环境搭建
    • Operator
      • Operator 概述
      • operator-sdk
      • kubebuilder
    • client-go
    • 社区贡献

    本书将支持中英文两个语言版本,通常文章会先用中文起草并更新,等待其内容较为成熟完善,更新不再频繁的时候才会翻译成英文,点击左上角切换语言。

    欢迎参与贡献和完善内容,贡献方法参考 CONTRIBUTING