Kubernetes 安装 Harbor 私有镜像仓库完整教程
在使用Kubernetes(以下简称K8s)进行应用部署时,通常需要使用到Docker镜像。而随着应用数量以及规模的增加,我们需要使用一个私有镜像仓库来管理这些镜像。Harbor是一个开源的私有镜像仓库,可以帮助开发者管理自己的Docker镜像。本文将介绍K8s中使用Harbor进行镜像管理的完整教程。
一、Harbor 简介
Harbor是一个开源的Docker镜像仓库,而且具有企业级别的功能。它允许开发者管理自己的Docker镜像,同时还支持角色控制、LDAP、审计日志、镜像复制、高可用等功能。
二、Kubectl 安装
在使用Kubernetes时,需要使用kubectl进行管理,因此在安装Harbor之前,需要先安装kubectl。
1.从kubectl的下载页中下载相应的版本,下面以v1.15.0为例:
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl
2.将kubectl二进制文件移动到/usr/local/bin目录下:
sudo mv kubectl /usr/local/bin/
3.配置kubectl的可执行权限:
sudo chmod +x /usr/local/bin/kubectl
4.验证kubectl是否已安装:
kubectl version
执行该命令后,如果出现版本号,则表示kubectl已经安装成功。
三、Docker 安装
在使用Harbor之前,需要先安装Docker。可以按照下面的步骤进行安装:
1.添加Docker的GPG key:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
2.添加Docker的APT仓库:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
3.更新APT仓库缓存:
sudo apt-get update
4.安装Docker:
sudo apt-get install docker-ce docker-ce-cli containerd.io
5.验证Docker是否已安装:
sudo docker version
执行该命令后,如果出现版本号,则表示Docker已经安装成功。
四、Harbor 安装
安装Harbor分为以下几个步骤:
1.下载安装包:
curl -O https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.1.tgz
2.解压安装包:
tar xvfz harbor-online-installer-v1.7.1.tgz
3.修改harbor.cfg文件中的配置项,可以根据需要设置。
4.在解压后的目录中执行以下命令进行安装:
sudo ./install.sh --with-notary --with-clair
执行该命令后,Harbor将会在本地启动。可以在浏览器中访问http://localhost:80来访问Harbor的Web界面。
五、使用 Harbor 进行镜像管理
- 登录 Harbor
在浏览器中访问http://localhost,输入管理员用户名和密码进行登录。
- 创建项目
进入管理界面后,可以创建一个新的项目。在项目界面中,可以上传、删除、浏览镜像,以及管理项目成员和权限等。
- 镜像上传
在项目界面中,可以通过以下步骤上传镜像:
①点击左侧菜单上的“Repositories”选项卡。
②如果还没有镜像库,需要新建一个镜像库。在Repositories页面右上角点击“New Project”按钮,填写项目的名称和描述即可。
③在Repositories页面中,点击“Upload”按钮,选择需要上传的Docker镜像。
- K8s中使用 Harbor
在K8s中使用Harbor,需要在K8s中配置imagePullSecrets。在下面的示例中,我们将使用name为harborsecret的secret:
- 创建secret
kubectl create secret docker-registry harborsecret --docker-server=http://harbor.example.com --docker-username=admin --docker-password=Harbor12345
其中,--docker-server参数指定Harbor地址,--docker-username和--docker-password参数指定Harbor管理员的用户名和密码。
- 使用secret
在使用Harbor中的镜像时,需要在Pod的spec中增加imagePullSecrets字段。例如:
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers:
- name: nginx image: harbor.example.com/library/nginx:latest imagePullSecrets:
- name: harborsecret
在上述Pod中,imagePullSecrets指定了需要使用的secret。由于该secret中包含了Harbor的用户名和密码,因此Pod能够通过该secret来拉取Harbor中的镜像。
总结
本文介绍了在K8s中使用Harbor进行镜像管理的完整教程。通过使用Harbor,开发者可以更加方便地管理Docker镜像。通过阅读本文,读者也可以了解到K8s中的镜像管理的一些基本知识,有助于提高应用的可扩展性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6482e8f648841e9894245e96