k8s部署harbor

Kubernetes(简称k8s)是一个开源的容器编排系统,用于自动化应用程序容器的部署、扩展和管理,Harbor是一个企业级的Docker Registry,可以帮助开发者和团队更好地管理和分发他们的容器镜像,本文将介绍如何在Kubernetes上部署Harbor。

一、准备工作

在开始部署Harbor之前,需要确保以下几点:

k8s部署harbor

1. 安装并配置好Kubernetes集群,可以参考官方文档(-environment/tools/kubeadm/install-kubeadm/)进行安装。

2. 安装Docker和Docker Compose,Harbor依赖于Docker来运行和管理容器,因此需要在Kubernetes集群中安装Docker,还需要安装Docker Compose,用于管理多个容器的应用。

3. 准备Harbor的安装包,可以从Harbor的GitHub仓库()下载最新版本的Harbor安装包。

二、部署Harbor

1. 将Harbor安装包上传到Kubernetes集群中的一个节点上,可以使用`kubectl cp`命令将文件从本地复制到Kubernetes集群中。

k8s部署harbor

kubectl cp harbor-offline-installer.tar.gz my-node:/tmp/harbor-offline-installer.tar.gz

2. 在Kubernetes集群中创建一个名为`harbor-installation`的Namespace,用于存放Harbor相关的资源:

kubectl create namespace harbor-installation

3. 使用`kubectl apply`命令将Harbor的离线安装包应用到Kubernetes集群中,创建一个名为`harbor`的Deployment和一个名为`harbor-service`的Service:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: harbor
spec:
  replicas: 1
  selector:
    matchLabels:
      app: harbor
  template:
    metadata:
      labels:
        app: harbor
    spec:
      containers:
      - name: harbor
        image: harbor-offline-installer/harbor-online-installer # 这里替换为实际的镜像名称和标签
        command: ["/bin/sh", "-c"]
        args: ["|"${HARBOR_PREFIX}/bin/docker pull registry && ${HARBOR_PREFIX}/bin/docker run --name=${HARBOR_REGISTRY_NAME} --restart=always -d --net=host --privileged=true --volume=${PWD}:/data --env=REGISTRY_HTTP_ADDR=0.0.0.0:5000 --env=REGISTRY_HTTPS_ADDR=0.0.0.0:443 --env=REGISTRY_STORAGE_DRIVER=overlay2 --env=REGISTRY_STORAGE_PATH=/data --env=REGISTRY_AUTH=none --env=REGISTRY_SSL_ENABLED=false"] # 这里替换为实际的环境变量设置
        env: []
        volumeMounts:
        - name: datastore
          mountPath: /data
      - name: docker-composer-runner
        image: busybox:latest
        command: ["sh", "-c", "sleep infinity"] # 这里可以替换为实际的启动命令,例如运行Harbor的Compose文件等
        volumeMounts:
        - name: datastore
          mountPath: /var/run/docker.sock # 这里可以替换为实际的挂载路径,例如挂载宿主机的Docker套接字等
        ports: [80] # 这里可以替换为实际需要暴露的端口列表,例如80、443等端口
---
apiVersion: v1
kind: Service
metadata:
  name: harbor-service
spec:
  selector:
    app: harbor
  ports:
    - protocol: TCP
      port: 80 # 这里可以替换为实际需要暴露的端口列表,例如80、443等端口
      targetPort: 80 # 这里可以替换为实际需要映射的端口列表,例如80、443等端口

4. 等待一段时间,让Harbor的Deployment和Service正常运行起来,可以使用以下命令查看Deployment的状态和Service的信息:

```bash

k8s部署harbor

kubectl get deployments harbor-status # 这里可以替换为实际的Deployment名称,例如harbor-master、harbor-worker等状态检查相关命令;kubectl get services harbor-service # 这里可以替换为实际的Service名称,例如kubectl get services harbor-service | grep ClusterIP # 这里可以替换为实际的服务信息查询相关命令;kubectl logs # 这里可以替换为实际的Pod名称,例如kubectl logs harbor-service-xxxxxxx # 这里可以替换为实际的日志查询相关命令;kubectl describe pod # 这里可以替换为实际的Pod名称,例如kubectl describe pod harbor-service-xxxxxxx # 这里可以替换为实际的Pod描述信息查询相关命令;kubectl exec -- sh # 这里可以替换为实际的Pod名称,例如kubectl exec harbor-service-xxxxxxx -- sh # 这里可以替换为实际的Shell命令执行相关命令;kubectl port-forward : # 这里可以替换为实际的Pod名称和端口映射关系,例如kubectl port-forward harbor-service-xxxxxxx 8000:80 # 这里可以替换为实际的端口映射关系查询相关命令;kubectl top pods # 这里可以替换为实际的Pod名称,例如kubectl top pods | grep # 这里可以替换为实际的Pod资源监控相关命令;kubectl get events # 这里可以替换为实际的事件查询相关命令;kubectl get nodes # 这里可以替换为实际的节点信息查询相关命令;kubectl get configmaps # 这里可以替换为实际的ConfigMap信息查询相关命令;kubectl get secrets # 这里可以替换为实际的Secret信息查询相关命令;kubectl get services # 这里可以替换为实际的Service信息查询相关命令;kubectl get deployments # 这里可以替换为实际的Deployment信息查询相关命令;kubectl get pods # 这里可以替换为实际的Pod信息查询相关命令;kubectl get hpa # 这里可以替换为实际的Horizontal Pod Autoscaler信息查询相关命令;kubectl get pvc # 这里可以替换为实际的Persistent Volume Claim信息查询相关命令;kubectl get statefulsets # 这里可以替换与实际StatefulSet信息查询相关命令;kubectl get ingresses # 这里可以替换与实际Ingress信息查询相关命令;kubectl get routes # 这里可以替换与实际Route信息查询相关命令;kubectl get persistentvolumeclaims # 这里可以替换与实际PersistentVolumeClaim信息查询相关命令;kubectl get secretkeys # 这里可以替换与实际SecretKey信息查询相关命令;kubectl get configmapkeys # 这里可以替换与实际ConfigMapKey信息查询相关命令;kubectl get podtemplatespecs # 这里可以替换与实际PodTemplateSpec信息查询相关命令,kubectl describe pods # 这里可以替换与实际Pod描述信息查询相关命令;kubectl describe deployments # 这里可以替换与实际Deployment描述信息查询相关命令;kubectl describe hpa # 这里可以替换与实际Horizontal Pod Autoscaler描述信息查询相关命令;kubectl describe pvc # 这里可以替换与实际Persistent Volume Claim描述信息查询相关命令;kubectl describe statefulsets # 这里可以替换与实际StatefulSet描述信息查询相关命令;kubectl describe ingresses # 这里可以替换与实际Ingress描述信息查询相关命令;kubectl describe routes # 这里可以替换与实际Route描述信息查询相关命令;kubectl describe persistentvolumeclaims # 这里可以替换与实际PersistentVolumeClaim描述信息查询相关命令;kubectl describe secretkeys # 这里可以替换与实际SecretKey描述信息查询相关命令;kubectl describe configmapkeys # 这里可以替换与实际ConfigMapKey描述信息查询相关命令;kubectl describe podtemplatespecs # 这里可以代替与actual PodTemplateSpec描述信息查询相关命令

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/57823.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2023-11-28 11:24
Next 2023-11-28 11:28

相关推荐

  • centos kubernetes

    CentOS是一个稳定、安全且免费的Linux发行版,适用于搭建Kubernetes集群。Kubernetes是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。

    2024-05-23
    0129
  • Kubernetes设计模式有哪些

    Kubernetes,也被称为K8s,是一个开源的容器编排系统,用于自动化应用容器的部署、扩展和管理,它的主要设计目标是提供一个简单的方式来构建、部署和管理大规模的容器化应用,Kubernetes的设计模式是其成功的关键因素之一,它使得Kubernetes能够灵活、可扩展和易于管理,本文将深入探讨Kubernetes的设计模式,包括控……

    2023-11-05
    0142
  • kubernetes mac「如何在mac下部署kubernetes」

    Kubernetes,是一个开源的容器编排系统,用于自动化应用部署、扩展和管理,它的主要功能包括,但不限于,自动装箱、服务发现和负载均衡、自我修复、密钥和配置管理等,近年来,随着微服务架构的流行,Kubernetes的使用越来越广泛,对于许多初学者来说,如何在本地环境(如Mac)中部署Kubernetes仍然是一个挑战,本文将详细介绍……

    2023-11-06
    0186
  • idea项目怎么部署到服务器

    简介Kubernetes是一个开源的容器编排平台,用于自动化应用部署、扩展和管理,Intellij IDEA是一款强大的Java集成开发环境(IDE),可以帮助开发者更高效地编写和调试代码,本文将介绍如何在Intellij IDEA中更高效地将应用部署到Kubernetes容器服务。准备工作1、安装Intellij IDEA:访问Je……

    2023-12-18
    0143
  • kubernetes 容器

    在Kubernetes中,获取客户端真实源IP是一项常见的需求,这通常用于日志记录、访问控制和网络监控等场景,本文将介绍如何在容器服务中获取客户端真实源IP的方法。我们需要了解Kubernetes的网络模型,Kubernetes使用一种称为Cgroups的机制来限制容器的资源使用,Cgroups可以限制CPU、内存、磁盘I/O等资源的……

    2023-11-15
    0156
  • kubernetes源代码

    Kubernetes Endpoints Controller的源码解析Kubernetes是一个开源的容器编排系统,它可以自动化部署、扩展和管理容器化应用程序,在Kubernetes中,服务是集群内部通信的基本单位,而Endpoints则是服务访问的入口,Kubernetes Endpoints Controller负责维护这些入口……

    2023-12-18
    098

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入