目录 前言 序言 Kubernetes与云原生应用概览 概念与原理 Kubernetes架构 设计理念 资源对象与基本概念解析 Pod Pod解析 Init容器 Pod安全策略 Pod的生命周期 Node Namespace Service Volume和Persistent Volume Deployment Secret StatefulSet DaemonSet ServiceAccount ReplicationController和ReplicaSet Job CronJob Ingress ConfigMap ConfigMap的热更新 Horizontal Pod Autoscaling Label 垃圾收集 NetworkPolicy Annotation 用户指南 用户指南 资源对象配置 配置Pod的liveness和readiness探针 配置Pod的Service Account Secret配置 管理namespace中的资源配额 命令使用 docker用户过度到kubectl命令行指南 kubectl命令概览 kubectl命令技巧大全 集群安全性管理 管理集群中的TLS kubelet的认证授权 TLS bootstrap 创建用户认证授权的kubeconfig文件 RBAC——基于角色的访问控制 IP伪装代理 使用kubeconfig或token进行用户身份认证 kubernetes中的用户与身份认证授权 访问 Kubernetes 集群 访问集群 使用 kubeconfig 文件配置跨集群认证 通过端口转发访问集群中的应用程序 使用 service 访问群集中的应用程序 在kubernetes中开发部署应用 适用于kubernetes的应用开发部署流程 迁移传统应用到kubernetes中——以Hadoop YARN为例 使用StatefulSet部署用状态应用 最佳实践 最佳实践概览 在CentOS上部署kubernetes1.6集群 创建TLS证书和秘钥 创建kubeconfig文件 创建高可用etcd集群 安装kubectl命令行工具 部署master节点 部署node节点 安装kubedns插件 安装dashboard插件 安装heapster插件 安装EFK插件 服务发现与负载均衡 安装Traefik ingress 分布式负载测试 网络和集群性能测试 边缘节点配置 安装Nginx ingress 运维管理 服务滚动升级 应用日志收集 配置最佳实践 集群及应用监控 数据持久化问题 管理容器的计算资源 存储管理 GlusterFS 使用GlusterFS做持久化存储 在OpenShift中使用GlusterFS做持久化存储 CephFS 使用Ceph做持久化存储 集群与应用监控 Heapster 使用Heapster获取集群和对象的metric数据 Prometheus 使用Prometheus监控kubernetes集群 服务编排管理 使用Helm管理kubernetes应用 构建私有Chart仓库 持续集成与发布 使用Jenkins进行持续集成与发布 使用Drone进行持续集成与发布 更新与升级 手动升级kubernetes集群 升级dashboard 领域应用 领域应用概览 微服务架构 微服务中的服务发现 Service Mesh 服务网格 Istio 安装并试用Istio service mesh 配置请求的路由规则 安装和拓展Istio service mesh 集成虚拟机 Linkerd Linkerd 使用指南 大数据 Spark standalone on Kubernetes 运行支持kubernetes原生调度的Spark程序 Serverless架构 边缘计算 开发指南 开发指南概览 开发环境搭建 单元测试和集成测试 client-go示例 社区贡献 Minikube 附录 附录说明 Kubernetes中的应用故障排查 Kubernetes相关资讯和情报链接 Docker最佳实践 使用技巧 问题记录