从 Rancher 学习 K8s - Rancher 的基础使用
舞台环境
- Rancher v2.6.9
- K8s v1.24.16
如果你不具备该环境,可以移步 使用 Rancher 安装 K8s 集群 查看。本文适合已经了解了 k8s 基础概念,想使用 rancher 管理学习 k8s 的人群。
创建 Nginx 负载
Pod 用于运行一个容器或者多个容器,大多数的场景使用单容器就可以了,这里我们部署一个拥有 3 个 Pod 的 nginx。在右侧面板 工作负载->Deployments->创建,选择创建一个 nginx 负载:
创建完成后可以在面板中看见它:
创建 service
nginx 创建完成后,我们需要配置 service,使其可以被访问。先获取 nginx 负载的标签,在右侧面板,工作负载->Deployments->nginx->编辑配置,复制出标签的键值:
在右侧面板,点击服务发现->服务->创建->节点端口类型:
填写基础信息:
这里监听端口,目标端口,节点端口猛地一看很懵。其实很简单,监听端口就是该 service 的自己的监听端口,用作给其他 k8s 对象使用的;目标端口就是容器自身监听的端口,也就是 nginx 的端口;节点端口就是 service 需要映射到节点 IP 上的端口,一会访问需要它,节点端口的范围需要在 K8s 集群允许的范围内,如果你不知道,先填个 30080 总没错。
之后点击选择器绑定 nginx 负载,帮我们前面复制的键值填进去:
确定创建后,使用任意 k8s 节点 IP 加30080 端口,即可在浏览器中看见 nginx 的欢迎页面。
创建PV,PVC
接下来我们来持久化数据,将 nginx 的欢迎页面改成我们自己编写的主页。这一步我们以自建的 NFS 服务用作持久券,请事先准备好 NFS,可以参考这里搭建一个 NFS 服务。
创建 PV
在右侧面板,点击储存->持久券,创建持久券:
在自定义中设置访问模式为多节点读写:
创建 PVC
在右侧面板,点击储存->持久券声明,创建持久券声明:
在自定义中设置访问模式为多节点读写,和 PV 保持一致。
配置 Pod 储存
在右侧面板,工作负载->Deployments->nginx->编辑配置中点击 Pod 选项卡,添加我们创建好的持久化券声明:
然后在容器中添加映射:
/usr/share/nginx/html
是 nginx 的默认静态文件路径,我们映射完成后,在 NFS 服务挂载目录下新建 wwwroot/index.html
文件,写入 hello,重新在浏览器中访问:
Ingress
最后我们来创建一个 ingress,用来将 nginx 暴露到公网上,在右侧面板,点击服务发现->Ingresses,点击新建,配置好域名和路径:
这里的端口就是 service 的监听端口,填写我们前面设置好的10080。最后在本机配置一下 host,访问 https + 域名,就完成了 ingress 的创建。