一、实验目的
1、掌握kubeSphere 的安装部署
2、掌握kubesphere 使用外部镜像仓库;
2、熟悉图像化部署任务:产生pod---定义服务--验证访问
本次实验旨在通过 KubeSphere 平台部署基于自定义镜像(nginx:1.26.0
)的有状态副本集,以实现 Nginx 服务的容器化部署与管理,熟悉 KubeSphere 中工作负载创建、镜像拉取、资源配置等操作流程,验证 Nginx 服务在容器环境下的正常运行及外部可访问性。
实验环境
-
集群环境:KubeSphere 容器平台,具备多个节点组成的 Kubernetes 集群,节点运行正常且网络连通性良好。
-
镜像仓库:阿里云容器镜像服务,已将
nginx:1.26.0
镜像推送至私有仓库crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps
。 -
操作终端:在具备
kubectl
工具且能连接到 KubeSphere 集群的环境中执行命令,同时使用 KubeSphere 控制台进行可视化操作。
二、实验内容
配置步骤
1.安装依赖项
# 安装必要工具 sudo yum install -y socat conntrack ebtables ipset # 使用官方脚本安装 Helm3 curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 如果安装不了,看是不是因为污点的问题报错如上,如果是可以使用下面的命令移除污点 kubectl taint nodes master node-role.kubernetes.io/control-plane:NoSchedule- 安装 KubeSphere Core(可能需要等待久一点,出现下面的页面即可) helm upgrade --install -n kubesphere-system --create-namespace ks-core \ https://charts.kubesphere.io/main/ks-core-1.1.4.tgz --debug --wait \ --set global.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks \ --set extension.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks #验证安装 kubectl get pods -n kubesphere-system -w kubectl get svc -n kubesphere-system ks-console #卸载方式 为避免数据丢失,请提前备份所有重要数据。 |
2. 访问 KubeSphere 控制台
访问 KubeSphere 控制台 开启端口转发(本地访问) kubectl port-forward --address 0.0.0.0 -n kubesphere-system svc/ks-console 8080:80 访问地址:http://10.1.1.85:8080 默认账号密码:admin/P@88w0rd 如果登录不了可能是因为进行端口转发时停止了命令,或者浏览器缓存问题,可以通过快捷键shift+ctrl+delete进行删除浏览记录。 初次登录会让你修改密码,根据提示修改密码 登录成功如下: 报错补充: 如果一直登录不了或者刷新页面不了,可能是因为停止了端口转发 确认端口转发正常运行
|
3.配置私有镜像仓库(以阿里云为例)
阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台当kubesphere自带的镜像地址不能获取镜像时,就需要用自建的镜像仓库地址或阿里镜像仓库地址。 (1)点击链接登录阿里云,进入以下界面 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 进入控制台进行实名认证 阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台 (2)点击上述链接,进入容器镜像服务创建个人版实例 (3)个人实例配置 设置Registry登录密码 (4)创建命名空间(全网独一无二,个人版命名空间最多可创建3个) (5)设置访问凭证(点击访问凭证然后点击设置固定密码) (6)创建镜像仓库 创建成功效果如下 (7)私仓使用 使用docker拉取镜像 docker pull nginx:1.26.0 使用docker images查看 虚拟机登录私有仓库 docker login --username=nick7182281059 crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com 输入私仓密码,出现“Login Succeeded”表示登录成功,如果报错可能是网络的问题。 为nginx:1.26.0打标签 # 使用镜像ID添加标签(推荐方式) docker tag 94543a6c1aef crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps:nginx-1.26.0 # 或者使用镜像名添加标签 docker tag nginx:1.26.0 crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps:nginx-1.26.0 推送镜像至阿里云容器镜像服务 # 先登录阿里云容器镜像服务(如果未登录) docker login --username=nick7182281059 crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com # 推送镜像 docker push crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps:nginx-1.26.0 在阿里云镜像仓库apps里面查看 从阿里云私有仓库拉取镜像 # 删除nginx:1.26.0 docker rmi nginx:1.26.0 # 拉取镜像(使用完整的仓库路径和标签) docker pull crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps:nginx-1.26.0 # 验证拉取 docker images | grep nginx # 应看到类似输出: # crpi-6t100g2gal8ziki7.cn-hangzhou.personal.cr.aliyuncs.com/aliyun230166/apps nginx-1.26.0 94543a6c1aef 12 months ago 188MB |
4.应用部署
(1)准备工作: 有两种方式创建密钥 使用命令:已创建镜像拉取密钥 或者可以选择页面创建保密字典,二选一即可 填写名称(如 选择项目(如 数据设置(选择镜像服务信息) 下面这个地址就是镜像服务地址 (2)在 KubeSphere 控制台配置镜像仓库 创建有状态副本集 基本信息 名称: nginx-demo 点击下一步。 注意这个查找的目录: 阿里云的命名空间/仓库名称:镜像版本 容器和服务的端口都写80 测试环境存储设置可以不搞,直接下一步就好 创建成功效果图 |
三、实验结论
1.KubeSphere 优势:
提供图形化界面,简化 Kubernetes 集群管理。
支持多租户和扩展组件,适合企业级应用场景。
2.挑战与改进:
初始安装需严格满足环境要求(如端口开放、依赖项安装)。
私有镜像仓库配置需注意权限和镜像命名规则。
部署成功验证:通过一系列配置和操作,成功在 KubeSphere 平台上创建了基于自定义 Nginx 镜像的有状态副本集,并关联相应服务,实现了 Nginx 服务的容器化部署。在浏览器或使用 curl
命令访问指定地址时,能够看到 Nginx 欢迎页面,表明 Nginx 服务正常运行,达到了实验预期目的。
关键要点总结:
镜像拉取密钥:正确创建并关联镜像拉取密钥是从私有镜像仓库成功拉取镜像的关键,否则会出现 “找不到镜像” 等错误。
资源配置:合理设置容器资源配额(CPU 和内存 )、健康检查等高级设置项,有助于保障服务的稳定运行和可靠性。
网络与权限:确保集群节点与镜像仓库的网络连通性,以及账号在镜像仓库具备拉取权限,是顺利完成部署的重要前提。