当前位置: 首页 > backend >正文

Kubernetes集群使用Harbor容器镜像仓库

实验环境

一、容器镜像仓库Harbor部署

1、配置主机名

192.168.10.14:

hostnamectl set-hostname harbor

2、安装Docker

wget -O /etc/yum.repos.d/docker-ce.repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum -y install docker-ce-20.10.20

systemctl enable --now docker

3、配置镜像加速器

sudo tee /etc/docker/daemon.json <<EFO

{

 "registry-mirrors": [

       "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",

     "https://docker.m.daocloud.io",

     "https://hub-mirror.c.163.com",

     "https://mirror.baidubce.com",

     "https://your_preferred_mirror",

     "https://dockerhub.icu",

     "https://docker.registry.cyou",

     "https://docker-cf.registry.cyou",

     "https://dockercf.jsdelivr.fyi",

     "https://docker.jsdelivr.fyi",

     "https://dockertest.jsdelivr.fyi",

     "https://mirror.aliyuncs.com",

     "https://dockerproxy.com",

     "https://mirror.baidubce.com",

     "https://docker.m.daocloud.io",

     "https://docker.nju.edu.cn",

     "https://docker.mirrors.sjtug.sjtu.edu.cn",

     "https://docker.mirrors.ustc.edu.cn",

     "https://mirror.iscas.ac.cn",

     "https://docker.rainbond.cc",

     "http://hub-mirror.c.163.com"

   ]

}

EFO

systemctl daemon-reload

systemctl restart docker

4、安装docker-compose工具

下载或上传docker-compose-linux-x86_64包到/root目录

下载地址:https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64

mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose -v

5、安装Harbor

(1)下载或上传harbor-offline-installer-v2.8.3.tgz包到/root目录

下载地址:wget https://github.com/goharbor/harbor/releases/download/v2.8.3/harbor-offline-installer-v2.8.3.tgz

tar xf harbor-offline-installer-v2.8.3.tgz -C /usr/local/

(2)修改配置文件

cd /usr/local/harbor/

cp harbor.yml.tmpl harbor.yml

vim harbor.yml

修改:

(3)导入Harbor所需镜像

docker load -i harbor.v2.8.3.tar.gz

(4)准备环境和生成配置文件

./prepare

(5)启动 Harbor 的所有服务容器

./install.sh

(6)自行启动Harbor命令

启动

docker-compose up -d

停止

docker-compose stop

重启

docker-compose restart

(7)使用浏览器访问Harbor

192.168.10.14

默认账户密码:admin/Harbor12345

二、Kubernetes集群使用harbor仓库

1、通过secret使用harbor仓库

(1)新建一个harbor私有仓库

(2)kubernetes集群所有节点配置访问harbor仓库(master1、worker1、worker2)

vim /etc/docker/daemon.json

添加:

,

  "insecure-registries": ["http://192.168.10.14"]

重启docker

systemctl restart docker

(3)上传nginx测试镜像到harbor仓库(harbor)

修改配置文件

vim /etc/docker/daemon.json

添加:

,

  "insecure-registries": ["http://192.168.10.14"]

重启docker

systemctl restart docker

重启harbor容器

cd /usr/local/harbor/

docker-compose restart

下载nginx:1.20镜像

docker pull nginx:1.20

或上传nginx1.20.tar包到root目录并导入

docker load -i nginx1.20.tar

修改nginx1.20镜像标签

docker tag nginx:1.20 192.168.10.14/test/nginx:1.20

登录harbor仓库并上传镜像

docker login 192.168.10.14

docker push 192.168.10.14/test/nginx:1.20

(4)创建docker-registry类型secret(master1)

kubectl create secret docker-registry harbor-secret --docker-server=192.168.10.14 --docker-username=admin --docker-password=Harbor12345

字段解析:

类型为docker-registry

harbor-server:这是Secret 的名称

--docker-server:指定 Docker 仓库的地址

--docker-username:指定登录仓库的用户名

--docker-password:指定登录仓库的密码

查看集群中所有secret

kubectl get secret

查看secret 中 harbor-secret的详细信息

kubectl describe secrets harbor-secret

(5)创建Pod直接使用secret

vim pod-harbor.yml

添加:

apiVersion: v1

kind: Pod

metadata:

  name: pod-harbor

spec:

  containers:

  - name: c1

    image: 192.168.10.14/test/nginx:1.20

  imagePullSecrets:

  - name: harbor-secret

创建资源

kubectl apply -f pod-harbor.yml

(6)查看pod-harbor的详细信息

kubectl get pod

kubectl describe pod pod-harbor

可以看到是从192.168.10.14/test/nginx:1.20拉取的镜像

2、通过ServiceAccout使用Secret访问harbor仓库

编写yaml文件时添加imagePullSecrets的这2行配置,可以把secret配置到ServiceAccount中进行调用也可以。

(1)创建ServiceAccount(服务账号)

vim serviceaccount-harbor-sa.yml

添加:

apiVersion: v1

kind: ServiceAccount

metadata:

  name: harbor-sa

  namespace: default

创建资源

kubectl apply -f serviceaccount-harbor-sa.yml

查看当前命名空间中的 ServiceAccount 资源

kubectl get sa

(2)修改ServiceAccount添加使用harbor-secret的权限

查看名为 harbor-sa 的 ServiceAccount 的详细信息

kubectl describe serviceaccount harbor-sa

更新名为 harbor-sa 的 ServiceAccount 的配置,具体是为其添加一个 imagePullSecrets

kubectl patch serviceaccount harbor-sa -n default -p '{"imagePullSecrets": [{"name": "harbor-secret"}]}'

字段解析:

kubectl patch:用于对 Kubernetes 资源进行部分更新。

serviceaccount harbor-sa:指定要更新的资源类型为 ServiceAccount,资源名称为 harbor-sa。

-n default:指定命名空间为 default。

-p '{"imagePullSecrets": [{"name": "harbor-secret"}]}':指定要更新的内容,这里是添加一个 imagePullSecrets,其名称为 harbor-secret

kubectl describe serviceaccount harbor-sa

(3)修改pod-harbor.yml使用serviceAccount

vim pod-harbor.yml

删除添加:

  serviceAccount: harbor-sa

(4)查看创建Pod pod-harbor后运行所在主机

kubectl get pod -o wide

(5)删除Pod pod-harbor

kubectl delete pod pod-harbor

(6)到worker2节点删除运行容器拉取的nginx1.20镜像

docker rmi 192.168.10.14/test/nginx:1.20

(7)使用修改后的pod-harbor.ym重启创建

kubectl apply -f pod-harbor.yml

kubectl get pod

kubectl describe pod pod-harbor

http://www.xdnf.cn/news/3092.html

相关文章:

  • 【数据治理】数据生命周期
  • ESP32- 开发笔记- 软件开发 4 - GPIO 口
  • 通过漂移-扩散仿真研究钙钛矿-硅叠层太阳能电池中的电流匹配和滞后行为
  • 【Web】如何解决 `npm run dev` 报错 `address already in use 127.0.0.1:9005` 的问题
  • WHAT - 前端开发滚动条场景解析
  • scratch代码——游戏开发 【弹簧与反弹】
  • Java-jwt4.4.0版本使用
  • 特殊权限管理
  • Linux命令使用记录(自用)
  • LS-Linux-004 误删 Python 和 yum、dnf 后的恢复步骤
  • neurips2025_latex
  • Python3(16) 函数
  • 安卓基础(无障碍点击)
  • 通用人工智能(AGI)的技术演进
  • 新人销售如何找精准客户?
  • 语言特性的发展与应用:从基础到前沿的全面解析
  • 25年第八本【活着】
  • 基于STM32、HAL库的DS28E25安全验证及加密芯片驱动程序设计
  • 一些常用的深度学习可视化平台:TensorBoard、Weights Biases (wandb)、VisualDL
  • C++ 原子操作的内存序(memory ordering)
  • ptpx常用操作
  • 企业选择IT技术人员外包能解决哪些问题
  • 【Axure高保真原型】动态地图路线
  • 三维引擎HOOPS SDK适配Linux ARM64,对国产工业软件意味着什么?
  • 深入剖析扩散模型对镜子反射理解局限:MirrorVerse 项目改进数据集与训练方法以提升反射处理表现的研究
  • 基于STM32、HAL库的ATECC608A安全验证及加密芯片驱动程序设计
  • LDO中反向二极管作用
  • 【每天一个知识点】GPU(图形处理单元)和CPU(中央处理单元)
  • Java—— 四道算法经典题
  • jthread是否可以完全取代thread?