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-seoK-seo
Previous 2023-11-28 11:24
Next 2023-11-28 11:28

相关推荐

  • Pod在Kubernetes中的创建过程

    Pod在Kubernetes中的创建过程Kubernetes是一个非常流行的容器编排平台,它可以帮助我们自动化管理容器化应用程序的部署、扩展和管理,在Kubernetes中,Pod是最小的可部署单元,它包含了一个或多个紧密关联的容器,本文将详细介绍Pod在Kubernetes中的创建过程,包括Pod的定义、配置文件、命令行操作以及相关……

    2023-12-18
    0149
  • Kubernetes Resource QoS Classes概念是什么「」

    Kubernetes Resource QoS Classes(Quality of Service Classes)是 Kubernetes 中用于管理资源分配和优先级的一种机制,它允许用户为不同类型的应用程序或服务指定不同的资源需求和优先级,以确保在有限的资源下,关键任务能够获得足够的资源进行正常运行。在 Kubernetes 中……

    2023-11-15
    0155
  • Slack加入Kubernetes社区的方法是什么

    Slack加入Kubernetes社区的方法如下:1. 注册账号:您需要在Kubernetes官方网站上注册一个账号,点击右上角的“Sign up”按钮,然后按照提示填写相关信息完成注册。2. 加入Slack频道:登录您的Kubernetes账号后,访问,在这里,您可以找到与Kubernetes相关的各种频道,包括开发、用户支持、安全……

    2023-11-13
    0151
  • kubernetes自动生成ConfigMap中的坑怎么解决

    随着容器化技术的发展,Kubernetes已经成为了企业级应用部署的首选平台,在Kubernetes中,ConfigMap是一种非常有用的资源,它可以将配置信息从应用程序代码中分离出来,使得应用程序更加灵活和可移植,在使用Kubernetes自动生成ConfigMap时,可能会遇到一些问题,本文将详细介绍这些问题以及相应的解决方案。二……

    2023-11-05
    0191
  • 如何在Centos7.6上部署k8s v1.16

    准备工作1、系统环境要求在部署Kubernetes之前,需要确保你的CentOS 7.6系统满足以下要求:CPU:Intel或AMD处理器,至少2核心内存:至少4GB RAM磁盘空间:至少10GB可用空间网络:支持IPv4和IPv6的网络环境2、关闭防火墙和SELinux在安装Kubernetes之前,需要关闭防火墙和SELinux,……

    2024-01-14
    0178
  • kubeadm安装k8s集群

    什么是Kubernetes?Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序,它最初是由谷歌开发的,后来成为云原生计算基金会(CNCF)的一部分,Kubernetes可以帮助开发者更轻松地管理和部署应用程序,提高资源利用率和可扩展性。为什么需要使用KubeCtl连接远程K8s集群?1……

    2023-12-16
    0132

发表回复

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

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