环境为windows11 。注意,本次实验建议开梯子。

由于实验可以在网页上进行,因此可以不用自己安装k8s进行实验。

网址:https://kubernetes.io/zh-cn/docs/tutorials/kubernetes-basics/

1.实验学时 :4 学时

2.实验目的:

(一)熟悉 K8S 系统的安装 (二)掌握 K8S 系统的基本命令 (三)掌握 K8S 的容器编排

3.实验内容:

(1)创建集群

首先查看对应版本:minikube version

开启集群:

 查看是否安装 kubectl:

查看集群信息:

 

 查看集群中的节点:

 (2)部署应用

查看 kubect 是否配置为集群对话

 查看集群中的节点:

使用 lubectl create deployment 部署应用程序:

 列出节点对应的合适的部署

 打开新的窗口运行代理。注意,代理运行完成之后,切换为之前的窗口输入后面的代码。

 查看 API 版本

 API 服务器会根据 pod 名称创建端点。 获取 pod 名称并将其存储在环境变量 Pod_name 中:

 

 之后运行 API 访问 Pod

 (三) 了解应用

查看是否有 pod 在运行:

 查看 pod 容器以及 pod 中的 image,查看对应容器相应信息。

 

 之后在终端显示对应的程序信息,首先将实验二中开启的代理关闭

 然后在新的窗口再次开启代理

 之后将再次获得的 pod 名称直接通过代理查询 pod,然后存储到 pod name 环 境变量中。

 之后查看应用程序的输出,查看对应的 API 路径

 之后查看容器日志

 在容器上执行命令,列出环境变量:

 在 pod 容器中启动一个 bash 对话:

 查看.js 文件

 程序是否启动

 这里使用了 localhost,执行了命令。

(四) 公开暴露应用

先退出容器:

查找现有的 pod

 列出集群当前的服务:

 创建一个新的服务暴露给外部流量:

 

运行 get services 命令

 了解外部 IP 打开了那个端口:

 创建一个名为 NODE_PORT 的环境变量,该环境变量指定了节点端口的值

 

 群外部:

 查看 deployment 为 pod 创建的标签名称

 

 查询 pod 列表,使用 kubectl get pods 命令和-l 作为参数,后跟标签 值

 列出现有的服务:

获取 Pod 的名称并将其存储在 Pod_name 环境变量中

 应用标签,使用 label 命令,version 改成学号

 使用 describe pod 命令检查

 查询 pod 列表:

 

 删除服务:

 确认服务停止:

 Curl 暴露先前的 IP 端口,证明应用程序不再能够从集群外部访问。

在 pod 中进行 curl:

 

 程序启动了,这是因为部署正在管理应用程序。要关闭应用程序,还需 要删除 Deployment。

(五) 缩放应用

拓展部署:

 查看 Deployment 创建的 ReplicaSet

 拓展到 4 个副本:

 再次列出部署:

 检查 pod 数量是否更改

 现在有 4 个 Pod,具有不同的 IP 地址。更改已在部署事件日志中注册。 检查,使用 description 命令。

 步骤二:检查负载平衡,找出暴露的 IP 和端口

 创建一个名为 NODE_PORT 的环境变量,该变量的值为节点端口

 创建环境变量完成之后,需要对暴露的 IP 和端口进行 crul

 步骤三:缩小 需要将服务缩小到 2 个副本,

 缩小成功 然后检查是否使用 get Deployments 更改

 由于副本数量减少,列出 pod 的数量,使用命令查看 pod 信息

 (六) 更新应用

首先运行命令查看当前部署:

 之后列出运行的 pods

 之后查看当前的 image 版本,运行命令查看 image 字段

 之后将应用的映像更新为版本 2

 使用 getpods 命令查看旧 pod 终止:

 终止成功。

步骤二,验证更新 检查应用是否运行,查找暴露的 IP 和端口:

 创建名为 NODE_PORT 的环境变量,指定节点端口的值

之后使用 crul 暴露 IP 以及端口:

 每次运行 curl 命令时,需要使用最新版本的 pod,需要使用 rollout 状态命 令确定更新。

 查看当前的 image 版本

 步骤 3,回滚更新: 执行其它更新,部署带有 v10 的映像

 

 之后查看映像部署状态:

 列出所有的 pod

 了解对应的 pod 状态

 

 回滚回上一个工作版本,使用 rollout 撤销命令

 这样会使得 pod 版本回退到上一个版本 之后再次使用命令列出 pod

 检查对应的 pod 映像

 发现再次回滚版本成功

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐