K8S入坑指南

Docker是容器,但容器不是Docker。Docker是containerd的上层应用,Docker的流行带动了容器技术的应用。单机服务编排,docker + docker-compose的组合足以支撑。对于集群管理,还是K8S更合适。K8S可基于docker引擎,也可直接基于containerd的容器引擎。K3S是K8S的精简版,基于containerd。

折腾笔记

  • K8S的架构很清晰:

    ETCD/SQLite(数据库)+ApiServer(接口)+Controller(控制器)+Kubelet(守护进程)+KubeProxy(网络服务)
  • 可以用kubeadm快速搭建k8s集群,需要将基础镜像替换镜像仓库,参考AKS on Azure China Best Practices
  • kubeadm搭建的集群,控制节点的主机有taint
  • 内网IP和Service的核心是基于KubeProxy控制的iptables规则
  • kubeadm初始化后,默认没有网络插件。安装网络插件(如Flannel)后DNS才会运行
  • Pod的流量通过Flannel转发,flannel会进行封包解包,从而实现跨主机,错误排查参考记一次flannel vxlan的debug过程
  • 公网组建K8S集群,可以但没必要(速度慢,不安全)。公网组建集群的核心是要让Flannel封包后发送的地址指向目的主机的公网IP。
    如果主机的公网IP跟内网IP不一致,参考Cloud floating IP persistent,将公网IP绑定到相应网卡上
  • 没有负载均衡器又想暴露主机端口的话,可以使用裸机负载均衡器MetalLB, bare metal load-balancer for Kubernetes
  • K8S官方Dashboard功能较少,且需要以HTTPS访问
  • Rancher是个功能完善的面板,但安装相对复杂
  • SSL证书的内容可以存为Secret并挂载到Pod内
  • 自动签发证书可以用Cert-Manager,目前对阿里DNS支持不太好

    可以用acme.sh签发证书,并通过钩子保存成Secret
  • 要求不高的话k3s比kubeadm更好用
  • 单主机“集群”的效率比直接用docker低,耗费的资源更多

参考文章

posted @   幸福的路痴  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示