
在我们开始之前,你必须先理解,TKE这类“托管Kubernetes服务”的核心价值是什么。
- 它像什么? 它就像一家专业的“演出经纪与管理公司”。
- 你自己从零搭建K8s集群,就像你要自己亲自去建一座音乐厅、招聘并管理每一位乐手、甚至还要负责后台的电力和安保。这个过程,极其复杂和耗时。
- 而使用TKE,则像是你直接对这家管理公司说:“我要举办一场音乐会。” 他们会立刻为你提供一座世界顶级的音乐厅(搭建好K8s的Master主节点)、为你准备好任意数量的、技艺精湛的待命乐手(配置好Worker工作节点),并搞定所有后台的繁杂事务。
- 你,作为“总指挥”,只需要带着你的“乐谱”(YAML配置文件),直接上台指挥就行了。
TKE,为你抹平了K8s那陡峭得可怕的入门门槛,让你能把100%的精力,都聚焦在你的“作品”(应用)本身。
第一步:建造你的“维也纳金色大厅”——创建TKE集群
现在,让我们登录腾讯云控制台,开始“建造”我们第一座专属的“音乐厅”。
- 找到入口: 在腾讯云产品列表里,搜索“容器服务”,点击进入“TKE – 标准集群”。
- 点击“新建”: 你会看到一个信息量巨大的创建页面。别慌,我们只关心几个核心选项。
- 集群名称: 起个好记的名字,比如
my-first-tke-cluster
。 - Kubernetes版本: 选择一个稳定版,通常默认推荐的即可。
- 所在地域/私有网络(VPC): 选择离你用户最近的地域。VPC通常会自动创建,它就是我们之前聊过的那个“私人岛屿”,能保证你集群内部的网络安全。
- Master节点: 对于标准集群,最棒的一点是,Master节点(也就是那位最核心的“指挥官”)是由腾讯云托管的! 你完全不用关心它的配置和运维,极大地降低了复杂性和成本。
- Worker节点配置(关键步骤): Worker节点,就是我们乐团里那些真正干活的“乐手座位”。你需要在这里,决定要“招聘”多少位“乐手”,以及他们的“体力”如何。
- 节点数量: 对于初体验,我们选择2台。
- 机型: 为了控制成本,选择一个入门级的、比如“标准型S5”的2核4G云服务器(CVM)机型即可。这就像先用“练习室的椅子”,不必一上来就用“金色大厅的定制沙发”。
- 系统盘/数据盘: 保持默认的50G SSD云硬盘即可。
- 集群名称: 起个好记的名字,比如
- 确认并创建: 检查一下配置,特别是费用。然后,勇敢地点击“完成”。接下来,你需要泡上一杯咖啡,耐心等待10-15分钟。 在这段时间里,TKE这位“总包工头”,正在后台,为你自动化地创建服务器、安装操作系统、初始化K8s主节点、配置网络、并将Worker节点注册到集群中……这些,都是它为你代劳的“脏活累活”。
当你在集群列表里,看到你的新集群状态变为“运行中”时,恭喜你,你的“音乐厅”,已经落成!
第二步:拿起你的“指挥棒”——配置kubectl
kubectl
,是你在自己电脑上,与远在云端的K8s集群“对话”的、唯一的“魔法指挥棒”。
- 获取“连接凭证”: 在你的TKE集群详情页面,找到“基本信息”标签页。你会看到一个叫“Kubeconfig”的东西。点击“开启外网访问”,然后复制它提供的“连接凭证”代码。
- 配置你的“指挥棒”:
- 在你自己的电脑上,打开终端。
kubectl
的配置文件,通常在~/.kube/config
。 - 将你刚刚复制的凭证内容,粘贴到这个文件里。如果你有多个集群,
kubectl
会自动帮你管理。
- 在你自己的电脑上,打开终端。
- 第一次“发号施令”: 在你的本地终端里,敲下这行命令:
Bash
kubectl get nodes
如果你看到类似下面的输出,并且STATUS
都是Ready
,那么,请为你自己欢呼!
NAME STATUS ROLES AGE VERSION
10.0.0.1... Ready <none> 15m v1.28.1-tke.1
10.0.0.2... Ready <none> 15m v1.28.1-tke.1
这说明,你手中的“指挥棒”,已经与远方的“音乐厅”成功建立了连接。那两位“乐手”(Worker节点),已经坐在椅子上,整装待发,随时听候你的调遣!
第三步:撰写你的第一份“乐谱”——deployment.yaml
在K8s的世界里,我们不再使用命令式的语言去“指挥”。我们使用一种“声明式”的语言,也就是YAML文件,来向“总指挥”K8s,描述我们“最终想要的演出效果”。
今天,我们的第一首曲子,是经典的“Nginx欢迎曲”。
在你的电脑上,创建一个nginx-deployment.yaml
文件:
YAML
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2 # 魔法在这里!我“声明”,我需要2位“乐手”
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest # 指定“乐谱”,使用Nginx官方镜像
ports:
- containerPort: 80
乐谱解读:
kind: Deployment
:告诉K8s,这是一份“部署方案”。replicas: 2
:这是核心!你在这里,清晰地“声明”:“我这个Nginx声部,需要两位一模一样的乐手。”image: nginx:latest
:指定了乐手们要演奏的“乐谱”,也就是使用哪个Docker镜像。
第四步:演出开始!—— 部署并暴露你的应用
乐谱写好了,现在,我们把它交给“总指挥”。
- 执行乐谱: 在你的本地终端,
cd
到你存放YAML文件的目录,然后执行:
Bash
kubectl apply -f nginx-deployment.yaml
2.确认“乐手”是否就位:
Bash
kubectl get pods
稍等片刻,你会看到两个nginx-deployment-xxxxx
状态为Running
的Pod。Pod,就是K8s里运行容器的最小单元,你可以把它就理解为“正在演奏的音乐家”。
3. 一个新问题:观众怎么进来? 现在,我们的两位Nginx“乐手”,正在音乐厅的“内部排练室”(集群内网)里,卖力地演奏。但外面的“观众”(互联网用户),还听不到他们的声音。我们需要为他们,开一个“公共售票处”。 在K8s里,这个“售票处”,就是一种叫**Service
**的资源,它的类型是LoadBalancer
。
4.创建“售票处”的乐谱 (nginx-service.yaml
)
YAML
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: LoadBalancer # 指定服务类型为“负载均衡”,TKE会自动创建一个公网IP
selector:
app: nginx # 这个选择器,会精准地找到所有贴着“app: nginx”标签的Pod
ports:
- protocol: TCP
port: 80 # 对外开放的“售票窗口”是80号
targetPort: 80 # 将请求,转发给Pod(音乐家)的80号“耳朵”
5.执行“售票处”乐谱:
Bash
kubectl apply -f nginx-service.yaml
6.获取“售票处”的公共地址:
Bash
kubectl get service nginx-service
你会看到类似这样的输出。注意EXTERNAL-IP
这一列,一开始它可能是<pending>
状态,请耐心等待1-2分钟。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-service LoadBalancer 172.20.0.123 123.45.67.89 80:30001/TCP
- 当那个
EXTERNAL-IP
(比如123.45.67.89
)出现时,终极的魔法时刻,到来了!
把这个公网IP地址,复制到你的浏览器里,打开它!
“Welcome to nginx!”
那个熟悉的页面,出现了。现在,尝试着刷新几次你的浏览器。你看不出任何变化,但在幕后,TKE这位“总指挥”,正在优雅地,把你每一次的刷新请求,轮流地、平均地,分发给你那两位正在后台待命的Nginx“乐手”之一。
你,不仅成功地举办了音乐会,还为它配备了双人主奏和自动的负载均衡!
你,已是“云原生指挥家”
好了,停下来,回顾一下你刚刚完成的这一切。
你不再只是一个会打包“集装箱”的“工人”,甚至也不再只是一个会指挥单个“音乐家”的“小组长”。
你,已经是一位真正的“交响乐团总指挥”。
TKE为你建好了最华丽的音乐厅,kubectl
是你手中那根响应迅捷的指挥棒,YAML是你心中那份谱写着高可用与弹性的华美乐章。你用“声明式”的艺术,而非“命令式”的苦力,优雅地,创造出了一个活生生的、具备自我修复和负载均衡能力的现代化应用。
这,才是云原生的真正魅力。去创作更宏伟的交响乐吧!