Kubernetes 工具栈
TOC
- 其他
- K8S YAML
- Dashboard
- 镜像与代理
- kubectl
- 环境
- 编排
- 容器
- 构建
- 包管理
- 可视化管理/UI
- 监控
- Operator
- Add-On
- Provisioner
- Debug
- Load Balancer
- Serverless
其他
- https://kubernetes.io/
- kompose: Go from Docker Compose to Kubernetes
- k3s: 轻量级 k8s,用于边缘计算、嵌入式、物联网场景
- k0s: 同上
- k9s: 交互式 CLI 工具,用于管理 K8S 集群。
- KubeEdge: 用于边缘计算场景
- gVisor: 容器运行时沙盒。把容器跑在隔离的虚拟容器环境中,提高安全性。
- ksync: 同步 POD 里的文件
K8S YAML
- kube-linter: a static analysis tool that checks Kubernetes YAML files and Helm charts
- Kubernetes YAML Generator
kubectl create $kind $name --dry-run=client -oyaml
通过命令行创建 YAML 文件。去掉--dry-run
会直接创建资源。kubectl create --help
,kubectl create deploy --help
Dashboard
- kuboard: K8S 的管理界面。全中文。
镜像与代理
- http://mirror.azure.cn/help/gcr-proxy-cache.html : GCR 代理
- https://mirror.azure.cn/kubernetes/ : containernetworking-plugins, etcd, kubectl, containerd 等资源的镜像
- quay.io,使用
quay.azk8s.cn
替代。 - https://kubernetes-charts.proxy.ustclug.org : helm chart 仓库镜像,http、https 都支持
kubectl
环境
- https://labs.play-with-k8s.com/ : 在线练习 K8S 集群
- minikube: 本地开发部署单节点 k8s 集群的工具。
- kubeadm: 部署多节点 k8s 集群的工具。
- kubespray: 基于 kubeadm 和 ansible 的 K8S 部署工具。
- kops: 在云厂商部署 k8s 集群的工具。
编排
- k8s-wait-for: 等待 K8S Service, Job 或 Pod to enter a desired state。纯 shell 脚本实现。
- wait-for-it: 等待指定 host:port 可用,执行指定命令。纯 shell 脚本实现。
- wait-for: 备用方案。
- docker-compose-wait: 支持等待多个 host。Rust 实现。
容器
- cri-tools: CLI and validation tools for Kubelet Container Runtime Interface (CRI) .
构建
- skaffold: Build\Test\Deploy\Tag\Push 自动化框架
- kaniko: 在容器里构建镜像
- Azure/draft: Draft makes it easy to build applications that run on Kubernetes. Draft targets the “inner loop” of a developer’s workflow: as they hack on code, but before code is committed to version control.
包管理
- kustomize: 使用 Base + Overlay 的方式自定义生成 K8S YAML 配置
- Helm vs Kustomize: Managing Complexity
- helm: 备选方案。坑很多。项目质量较差。
可视化管理/UI
- Portainer
- Weave Scope: Monitoring, visualisation & management for Docker & Kubernetes
- Kui: Kubernetes 的另一个 UI。介绍
监控
- SkyWalking: 基于 K8S 的无侵入式的网络监控
Operator
- kubebuilder: SDK for building Kubernetes APIs using CRDs
- operator-sdk
- shell-operator: 用 shell 脚本写 operator
Add-On
- Metrics Server: K8S 资源数据收集器。
- cert-manager: K8S 证书管理和自动更新。
- sealed-secrets: A Kubernetes controller and tool for one-way encrypted Secrets
Provisioner
- local-path-provisioner: Use HostPath for persistent local storage with Kubernetes
- local-volume-provisioner
- storage-lib-external-provisioner: A library for writing external provisioners.
Debug
- netshoot: a Docker + Kubernetes network trouble-shooting swiss-army container
- kubectl-debug: 可以非侵入式地排查 pod 和容器的网络问题。默认使用 netshoot 镜像。相关议题 Ephemeral Containers
- ksniff: Kubectl plugin to ease sniffing on kubernetes pods using tcpdump and wireshark
- telepresence: 将远端 k8s 集群的流量转发到本地的服务,便于调试。
Load Balancer
- MetalLB: a load-balancer implementation for bare metal Kubernetes clusters