本学习笔记是学习小白debug视频及公众号后的整理,仅自用,侵权则删

k8s 是什么

Kubernetes, 简称 k8s,我们可以把它当做服务器和应用服务之间的中间层。在腾讯云里,它叫 TKE,Tencent Kubernetes Engine。

在没有 K8s 之前,如果你有几十个甚至上百个程序(容器)在运行,手动管理它们会非常痛苦。

  • 自动化运维:如果某个程序崩溃了,K8s 会自动发现并把它重启。

  • 弹性伸缩:当用户访问量暴增时,K8s 可以自动增加程序的数量(多开几个房间);访问量下降时,再自动缩减以节省资源。

  • 负载均衡:K8s 会自动分配流量,确保没有哪台服务器被“累死”。

有了它,你不再需要苦哈哈手动部署服务,你只要写好一份类似 todo list 的配置文件,k8s 就可以自动将应用部署到各个服务器上,应用崩了还能自动帮你找到另外一台服务重新部署。

那它是怎么做到的呢?

我们知道,公司里通常会维护一批云服务器,它们可以是物理机或虚拟机。

k8s 会将这些服务器分为两类,一部分叫控制平面(control plane),另一部分叫工作节点,也就是 Node

control plane决定应用部署到具体哪个 node 上。而 node 则负责实际部署各种应用服务,这些千奇百怪的应用服务,我们统一管它叫 pod,它们共同构成 k8s 集群。

举个例子,不同的 node 可以是不同规格的服务器,有些 4c8g,有些 8c32g. 如果你想要部署一个 4c16g 的视频推荐服务,以前你需要手动选择服务器部署,但现在你只需要执行一行命令,control plane 就会自动帮你选择好 node, 做自动部署。

K8s是如何工作的?

K8s 采用的是“声明式”管理。你不需要告诉它“怎么做”,只需要告诉它“你想要什么状态”:

  1. 提交指令:你告诉 K8s:“我想要运行 3 个 Nginx 容器”。

  2. 持续监控:K8s 的控制面板会不断检查实际情况。

  3. 自动修复:如果其中 1 个挂了,K8s 发现“实际只有 2 个,但我想要 3 个”,它就会立即再启动一个新的来填补空缺。

在项目开发中扮演什么角色?

在开发场景中,执行这个脚本通常是为了:

  • 身份认证:让你的电脑获得访问远程K8s集群的权限。

  • 端口转发(Port-Forwarding):这是最关键的。由于数据库(如 Redis, MongoDB)运行在云端的 K8s 集群里,你本地的后端程序无法直接访问。该脚本会像“挖隧道”一样,把云端的端口映射到你本地,让你的程序以为数据库就在自己电脑上。

更多推荐