K8s集群部署Docker-Harbor镜像:Node认证详解
需积分: 5 75 浏览量
更新于2024-08-03
收藏 675KB DOCX 举报
"这篇文档主要介绍了如何在Kubernetes (k8s) 集群中部署基于Docker-Harbor的镜像,并在Node节点上进行必要的认证过程。"
在Kubernetes环境中部署应用通常涉及创建Deployment、Service以及Ingress资源。在本案例中,我们关注的是如何将存储在Docker-Harbor私有仓库的镜像部署到Kubernetes集群的Node节点,并确保在拉取镜像时正确进行身份验证。
首先,我们看到一个名为`deploy.yml`的YAML文件,它包含了三个主要的Kubernetes对象定义:Deployment、Service和Ingress。以下是这些对象的详细说明:
1. Deployment:
- `apiVersion: apps/v1` 表明我们正在使用的是apps/v1版本的Deployment API。
- `kind: Deployment` 定义了一个Deployment资源,用于管理应用的副本集和滚动更新。
- `name: web` 是这个Deployment的名称。
- `spec.replicas: 2` 指定我们希望保持的副本数量,这里是2个。
- `spec.selector.matchLabels.app: java-demo` 确保Deployment选择器与Pod模板的标签匹配。
- `spec.template.spec.imagePullSecrets.name: $SECRET_NAME` 定义了用于从Docker-Harbor拉取镜像的Secret名称,需要替换为实际的Secret名称。
- `spec.containers` 部分定义了容器的配置,包括镜像名 `$IMAGE_NAME`,端口映射等。
2. Service:
- `apiVersion: v1` 和 `kind: Service` 创建了一个v1版本的服务。
- `name: web` 是服务的名称。
- `spec.type: NodePort` 指定服务类型为NodePort,这样可以将服务暴露在每个集群节点的特定端口上。
- `spec.selector.app: java-demo` 与Deployment的selector匹配,确保服务能正确路由到对应的Pods。
- `spec.ports` 配置了服务端口和目标Pod端口的映射。
3. Ingress:
- `apiVersion: extensions/v1beta1` 使用的是老版Ingress API,新版本应使用networking.k8s.io/v1。
- `kind: Ingress` 创建了一个Ingress资源,提供外部网络访问应用的规则。
- `name: web` 为Ingress的名称。
- `spec.rules` 定义了访问规则,通过`host: java.example.com` 指定了域名。
- `spec.rules.http.paths` 设置了HTTP路径,将流量导向Service。
在Kubernetes中,`imagePullSecrets` 是用来存储Docker注册表(如Harbor)凭证的Secret对象,这里需要在创建Deployment之前创建。你可以使用`kubectl create secret docker-registry`命令创建一个Secret,然后将`$SECRET_NAME`和`$IMAGE_NAME`替换为实际的Secret名称和镜像名称。
总结来说,这个过程包括:
1. 创建一个Docker-Harbor的镜像Pull Secret。
2. 编写YAML文件,其中包含Deployment、Service和Ingress的定义,以及使用该Secret的配置。
3. 使用`kubectl apply -f deploy.yml`命令部署YAML文件中的资源。
4. 验证服务是否正常运行,并通过Ingress规则从外部访问应用。
完成这些步骤后,你就可以在Kubernetes集群的Node节点上成功部署并运行存储在Docker-Harbor的镜像了。
2023-05-25 上传
2024-10-26 上传
2024-10-26 上传
2023-08-29 上传
2023-03-03 上传
2024-02-06 上传
2023-11-10 上传
运维实战课程
- 粉丝: 1578
- 资源: 410
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程