kubernetes进阶 (二) 搭建harbor仓库及镜像制作

news2024/11/20 9:27:29

我遇到的场景规模较大,F5后有很多个仓库。 并且仓库直接还存在同步关系,因为拉取镜像走的是F5,当碰到莫名其妙的原因(仓库挂了,或者维护、磁盘满了),上送到根仓库的镜像没有同步到其他所以的仓库,就会导致应用在使用的时候拉不到镜像,全量同步又太消耗资源,而我能做的也只是通过计划任务在特定的时间,对当天上送的镜像进行检查并推送到其他仓库,减少手动同步的次数

一、安装harbor仓库

#拉取软件包
wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.3.3/harbor-offline-installer-v2.3.3.tgz

#安装docker-compose
curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose
 
#解压缩拷贝模板文件
tar -zxvf harbor-offline-installer-v2.3.3.tgz && cd harbor
cp harbor.yml.tmpl harbor.yml

vi harbor.yml

      5 hostname: 10.0.16.15          #修改ip
      6 
      7 # http related config
      8 http:
     10   port: 30007             #对外端口暴露
     11 
     12 # https related config
     13 #https:                                      #将https这块和证书都注释掉
     14   # https port for harbor, default is 443
     15 #  port: 443
     16   # The path of cert and key files for nginx
     17 #  certificate: /your/certificate/path
     18 #  private_key: /your/private/key/path


     47 data_volume: /approot1/paas/harbor/data   #定义数据目录

启动

#--with-chartmuseum 支持后面传helm用的包
./install.sh --with-chartmuseum

登录查看

http://101.43.156.78:30007/

二、安装django框架

我们要制作一个镜像需要一个前台进程,我们这里就直接用django的

参考文档

https://blog.csdn.net/qq_42883074/article/details/130720709

安装库

//配置清华镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
 
//安装
pip install django==4.2.1

创建项目

#在windows终端执行
django-admin startproject   Django_demo

cd django_demo
python manage.py startapp app_demo

修改全局配置

vi Django_demo/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
 
 
    'app_demo', #注册新创建的应用app
]

ALLOWED_HOSTS = ['*']   #允许所有人访问


LANGUAGE_CODE = 'zh-Hans'   #中文语言
 
TIME_ZONE = 'Asia/Shanghai'  #中国时区

编辑视图函数

 vi app_demo/view.py

from django.http import HttpResponse
 
def login(request): 

    return HttpResponse("登录页面")  

添加路由方法

vi Django_demo/urls.py

from django.urls import path,re_path   
from app_demo import views 
 
urlpatterns = [
    path("login/", views.login),       
    re_path(r'^hello/$', views.login),
]

运行测试

python manage.py runserver

访问测试

http://127.0.0.1:8000/login/

三、镜像环境准备

假设我们上面已经开发好了一个完整的项目,现在我需要将他打包成镜像

 1、拉取基础镜像

#拉取基础镜像
docker pull python:alpine


#查看镜像大小
docker images | grep python

2、 测试镜像环境

我们拿到一个基础镜像的时候其实不太知道他符不符合咱们的要求,我们就先建一个临时的容器去测试一下

#创建容器
docker run -itd --name test    python:alpine  sh

#登录容器
docker exec -it test sh


#查看python 版本
python -V


#查看并添加pip 源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

 

这边我们确定这个容器已经把基础python环境架起来了,pip命令也有,现在我们去idea把依赖的库整理下准备打包

四、制作镜像

1、保存项目依赖库文件

pip freeze > requirements.txt

获取到依赖库的文件列表后,我们把整个项目目录扔到linux 的/approot1/目录下

 

刚才忘了一个东西,因为我们是在项目根目录的位置获取的依赖,但打包的时候只需要Django_demo 目录即可,这里要把库列表文件仍到打包的目录下

 

2、编写dockerfile

vi Dockerfile

FROM python:alpine
COPY ./Django_demo /data/
WORKDIR /data
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
    && pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn \
    && pip install --upgrade pip \
    && pip install -r requirements.txt

CMD ["python","./manage.py","runserver","0.0.0.0:8000"]

编译

docker build . -f Dockerfile -t django:v1

 

3、部署容器

#创建容器
docker run -d  --name test3  -p 30009:8000 django:v1

#访问页面
http://101.43.156.78:30009/login/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/961707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高版本springboot3.1配置Eureka客户端问题

只需要按上面配置好,然后高版本的Eureka,不需要EnableEurekaClient这个注解了,直接SpringBoot启动,就可以注册到注册中心。 /*********************************************************/ /** * 开启eureka客户端功能 */ //E…

go锁-互斥锁

go锁-互斥锁 sema初始值是0,waitershift等待协程的数量 正常枷锁: 尝试CAS直接加锁,通过原子包给lockerd 为枷锁 若无法直接获取,进行多次自旋尝试,未获取到的锁的g ,多次执行空语句,多次尝试…

indeogram用法

特点: indeogram.ai 是一种基于人工智能的图形设计工具,可以帮助用户快速和轻松地创建专业级的图形。它使用人工智能来识别图形的元素,并自动生成设计方案。这使得 indeogram.ai 非常适合没有任何图形设计经验的用户。 登录网站&#xff1a…

参数和BigDecimal zero比较失效的异常

记录Bigdecimal中参数和BigDecimal zero比较失效的异常 List<StockBatchDTO> b a.stream().filter(v->!v.getQuantity().equals(BigDecimal.ZERO)).collect(Collectors.toList());//失效List<StockBatchDTO> c a.stream().filter(v->v.getQuantity().comp…

高忆管理:股票最基本的知识?

股票是一个经济体中的一份所有权。持有股票的人成为公司的股东&#xff0c;代表他们在公司中有一定的决策权和分红权。股票商场是一个重要的金融商场&#xff0c;关于企业和出资者都具有重要的含义。那么&#xff0c;股票出资的基本知识是什么呢&#xff1f; 一、 股票的界说 …

DEAP库文档教程三-----创建类型

本节将继续展示如何通过creator创建类型以及如何使用toolbox如何对复杂问题进行初始化。 Particle的初始化--粒子初始化 一个Particle是另一个特殊类型的个体&#xff0c;这是因为通常情况下它有一个速度&#xff0c;并且有一个最优的位置需要去记忆。这种类型个体的创建与通…

六、高并发内存池--Central Cache

六、高并发内存池–Central Cache 6.1 Central Cache的工作原理 central cache也是一个哈希桶结构&#xff0c;他的哈希桶的映射关系跟thread cache是一样的。不同的是他的每个哈希桶位置挂是SpanList链表结构&#xff0c;不过每个映射桶下面的span中的大内存块被按映射关系切…

pycharm创建的虚拟环境为什么用conda env list命令查询不到?

问题描述&#xff1a;pycharm创建的虚拟环境为什么用conda env list命令查询不到。 pycharm开发环境可以创建虚拟环境&#xff0c;目的是为隔绝其他环境种库带来的版本干扰&#xff0c;但是发现一个问题&#xff0c;无论是在windows终端、anaconda终端、Pycharm开发环境中的终…

Redis之MoreKey问题及Scan命令解读

目录 MoreKey问题讨论 Scan命令 Sscan命令 Hscan命令 Zscan命令 MoreKey问题讨论 keys * 查看当前库所有key 对于海量数据执行key *会造成严重服务卡顿、影响业务。在实际环境中最好不要使用。生产制造过程中keys * / flushdb/flushall等危险命令以防止误删误用。 大量的…

求臻医学:ctDNA动态监测可预测A+T治疗疗效

臻知识专家访谈 | 第45期 抗血管生成药物贝伐珠单抗&#xff08;A&#xff09;和一代靶向药厄洛替尼&#xff08;T&#xff09;的联合&#xff0c;能够显著提高EGFR敏感突变&#xff08;非T790M&#xff09;NSCLC患者的PFS和5年生存率&#xff0c;延缓靶向药物的耐药。但不是所…

智慧排水监测系统,科技助力城市排水治理

城市里&#xff0c;人们每天通过道路通行&#xff0c;人多&#xff0c;路窄&#xff0c;都会拥堵。同样&#xff0c;下雨天&#xff0c;雨水通过雨篦汇集、管道输送&#xff0c;最终排出去&#xff0c;当雨水过大&#xff0c;或者管道过窄&#xff0c;或者管道不通畅&#xff0…

考研408 | 【操作系统】终章

I/O设备的基本概念和分类 I/O设备&#xff1a; I/O设备的分类 1.按使用特性&#xff1a; 2.按传输速率分类&#xff1a; 3.按信息交换的单位分类&#xff1a; 总结&#xff1a; I/O控制器 I/O设备的机械部件&#xff1a; I/O设备的电子部件&#xff08;I/O控制器&#…

Stable Diffusion 从入门到企业级实战0401

一、概述 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第01节&#xff0c; 利用Stable Diffusion ControlNet Inpaint模型精准控制图像生成。本部分内容&#xff0c;位于整个Stable Diffusion生…

Python 实现单例模式的五种写法!

单例模式&#xff08;Singleton Pattern&#xff09; 是一种常用的软件设计模式&#xff0c;该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中&#xff0c;某个类只能出现一个实例时&#xff0c;单例对象就能派上用场。 比如&#xff0c;某个服务器程序的…

DEAP库文档教程一

DEAP是一个新的用于快速验证和测试新想法的演化计算框架。它致力于直接地构建算法和数据结构的简单化。它可以很好地应用在并行机制中。下面的文档将会展示许多关键概念以及构建你自己的演化算法时的一些特征。 第一步 1、总览(从这里开始) 2、安装 3、如何进入端口?(porting…

微服务设计和高并发实践

文章目录 1、微服务的设计原则1.1、服务拆分方法1.2、微服务的设计原则1.3、微服务架构 2、高并发系统的一些优化经验2.1、提高性能2.1.1、数据库优化2.1.2、使用缓存2.1.3、服务调用优化2.1.4、动静分离2.1.5、数据库读写分离 2.2、服务高可用2.2.1、限流和服务降级2.2.2、隔离…

Axure RP美容美妆医美行业上门服务交互原型图模板源文件

Axure RP美容美妆医美行业上门服务交互原型图模板源文件&#xff0c;原型内容属于电商APP&#xff0c;区别于一般电商&#xff0c;它的内容是‘美容美发美妆等’上门服务等。大致流程是线上买单&#xff0c;线下实体店核销消费。 附上预览演示&#xff1a;axure9.com/mobile/73…

DEAP库文档教程五----计算统计

本小结将重点围绕模型在计算统计方面的问题&#xff0c;进行详细的论述 1、Computing Statistics 通常情况下&#xff0c;我们想要在优化过程中编辑数据。Statistic模块可以在任何设计好的目标上改变一些本不可改变的数据。为了达到这个目的&#xff0c;需要使用与工具箱中完…

2023-9-2 Prim算法求最小生成树

题目链接&#xff1a;Prim算法求最小生成树 #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 510, INF 0x3f3f3f3f;int n, m; int g[N][N]; int dist[N]; bool st[N];int prim() {memset(dist, 0x3f, size…

一、项目介绍 二、什么是内存池?

目录 一、项目介绍这个项目是做什么的&#xff1f; 二、什么是内存池&#xff1f;2.1 什么是池化技术&#xff1f;2.2 内存池2.3 内存池主要解决什么问题&#xff1f;2.4 malloc 一、项目介绍 这个项目是做什么的&#xff1f; 当前项目是实现一个高并发的内存池&#xff0c;它…