caas k8s主控节点如何查询_k8s--04 部署harbor作为k8s镜像仓库

k8s实战

部署harbor作为k8s镜像仓库

1.实验目标

部署k8s私有镜像仓库harbor把demo小项目需要的镜像上传到harbor上修改demo项目的资源配置清单,镜像地址修改为harbord的地址

2.再node1上安装harbor

[root@node1 ~]# cd /opt/#上传harbor软件包[root@node1 /opt]# rz -Erz waiting to receive.#解压[root@node1 /opt]# tar zxf harbor-offline-installer-v1.9.0-rc1.tgz#进入解压后的文件目录[root@node1 /opt]# cd harbor/

3.编辑harbor配置文件

#备份[root@node1 /opt/harbor]# cp harbor.yml harbor.yml.bak#编辑配置文件[root@node1 /opt/harbor]# vim harbor.yml #需要更改的地方hostname: 10.0.0.11port: 8888harbor_admin_password: 123456data_volume: /data/harbor

4.执行安装

#在安装harbor是许诺先安装docker-compose,否则报错[root@node1 /opt/harbor]# yum install docker-compose -y#安装harbor(注意命令执行的所在目录)[root@node1 /opt/harbor]# ./install.sh
7f4b5c112d090cb589d7ffb7ba46db1c.png

5.浏览器访问

http://10.0.0.11:8888用户:admin密码:123456
ca1e9cdbc5f932ee201a2c5105d35e4d.png
ce688a72523ed69975eb6fd56a3741f2.png

6.建立镜像仓库

这里有2种访问级别:公开:任何人都可以直接访问并下载镜像私有:登陆授权后才允许下载镜像#注意如果创建私有仓库,k8s是不能直接下载的,需要配置安全文件
01cf66b2c857acc6ca80dfb1416a0e86.png
b4226962d96283c7ee81914d369953c4.png
0b2cced12efb9f5312b5fa888add31d8.png

7. 所有节点都配置docker信任harbor仓库并重启docker 注意:所有节点

#配置信任仓库cat >/etc/docker/daemon.json <

8.docker登陆harbor ( 所有节点 都执行 )

[root@node1 /opt/harbor]# docker login 10.0.0.11:8888Username: adminPassword: #密码 123456WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded

9.下载镜像修改tag并push到harbor上 ( 注意:从节点执行 )

1.在主节点查询镜像存放的节点位置[root@node1 ~]# kubectl get pod -o wide NAME                     READY   STATUS    RESTARTS   AGE   IP         NODE    NOMINATED NODE   READINESS GATESmysql-8fcd9f64-vqkm9     1/1     Running   1          18m   10.2.1.4   node2   myweb-6f974fdbdc-gsncp   1/1     Running   1          18m   10.2.1.5   node2   myweb-6f974fdbdc-ngngv   1/1     Running   1          18m   10.2.2.3   node3   2.根据主节点获取的信息在从节点执行打标签[root@node2 ~]# docker tag kubeguide/tomcat-app:v1 10.0.0.11:8888/k8s/tomcat-app:v1[root@node2 ~]# docker tag mysql:5.7 10.0.0.11:8888/k8s/mysql:5.73.将打好的标签的镜像上传到harbor仓库[root@node2 ~]# docker push 10.0.0.11:8888/k8s/tomcat-app:v1 [root@node2 ~]# docker push 10.0.0.11:8888/k8s/mysql:5.7
1ec80a56e272e9bcead18dc161e79bc4.png

10.节点上删除镜像

#注意需要先删除标签镜像在删除源镜像docker rmi 10.0.0.11:8888/k8s/mysql:5.7 docker rmi 10.0.0.11:8888/k8s/tomcat-app:v1docker rmi mysql:5.7 docker rmi kubeguide/tomcat-app:v1

11.删除以前的demo项目 注意:主节点执行

[root@node1 ~]# kubectl delete -f tomcat-demo.yamldeployment.apps "mysql" deletedservice "mysql" deleteddeployment.apps "myweb" deletedservice "myweb" deleted

12.修改demo项目的资源配置清单里的镜像地址

[root@node1 ~]# vim tomcat-demo.yaml   #注意更改的位置原来image: mysql:5.7  变更为: image: 10.0.0.11:8888/k8s/mysql:5.7原来image: k8s/tomcat-app:v1   变更为: image: 10.0.0.11:8888/k8s/tomcat-app:v1

13.应用资源配置清单

[root@node1 ~]# kubectl create -f tomcat-demo.yaml deployment.apps/mysql createdservice/mysql createddeployment.apps/myweb createdservice/myweb created

14.报错

#此时查看pod状态会发现镜像拉取失败了[root@node1 ~]# kubectl get podNAME                     READY   STATUS             RESTARTS   AGEmysql-7d746b5577-wtxtm   0/1     ErrImagePull       0          15smyweb-764df5ffdd-jvvmf   0/1     ImagePullBackOff   0          15smyweb-764df5ffdd-rc9pc   0/1     ImagePullBackOff   0          15s#查看pod创建的详细信息[root@node1 ~]# kubectl describe pod mysql-7d746b5577-可以tab自己的数据#关键报错信息:Failed to pull image "10.0.0.11:8888/k8s/mysql:5.7": rpc error: code = Unknown desc = Error response from daemon: pull access denied for 10.0.0.11:8888/k8s/mysql, repository does not exist or may require 'docker login'翻译:项目不出在或者需要登录

15.查看docker登陆的密码文件

[root@node1 ~]# docker login 10.0.0.11:8888Authenticating with existing credentials...WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded#查看加密密码文件[root@node1 ~]# cat /root/.docker/config.json{"auths": {"10.0.0.11:8888": {"auth": "YWRtaW46MTIzNDU2"}},"HttpHeaders": {"User-Agent": "Docker-Client/18.09.9 (linux)"}

16.将docker密码文件解码成base64编码 解码:base64

[root@node1 ~]# cat /root/.docker/config.json|base64ewoJImF1dGhzIjogewoJCSIxMC4wLjAuMTE6ODg4OCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZNVEl6TkRVMiIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDkuOSAobGludXgpIgoJfQp9#每一个人的都不一样

17.创建并应用docker登陆的Secret资源

#注意!!!1.dockerconfigjson: xxx直接写base64的编码,不需要换行2.base64编码是一整行,不是好几行3.最后的type字段不能少[root@node1 ~]# cat >harbor-secret.yaml<

18.修改demo资源配置清单,添加拉取镜像的参数

查看命令帮助kubectl explain deployment.spec.template.spec.imagePullSecrets修改资源配置清单修改文件----------------------------      imagePullSecrets:       - name: harbor-secret----------------------------  #注意:mysql和tomcat都需要增加[root@node1 ~/demo]# cat tomcat-demo.yaml apiVersion: apps/v1kind: Deployment metadata:  name: mysqlspec:  replicas: 1  selector:    matchLabels:      app: mysql  template:    metadata:      labels:        app: mysql    spec:      containers:      - name: mysql        image: 10.0.0.11:8888/k8s/mysql:5.7        ports:        - containerPort: 3306        env:        - name: MYSQL_ROOT_PASSWORD          value: "123456"      imagePullSecrets:      - name: harbor-secret---apiVersion: v1kind: Servicemetadata:  name: mysqlspec:  ports:    - port: 3306  selector:    app: mysql---apiVersion: apps/v1kind: Deployment metadata:  name: mywebspec:  replicas: 2  selector:    matchLabels:      app: myweb  template:    metadata:      labels:        app: myweb    spec:      containers:      - name: myweb        image: 10.0.0.11:8888/k8s/tomcat-app:v1        ports:        - containerPort: 8080        env:        - name: MYSQL_SERVICE_HOST          value: 'mysql'        - name: MYSQL_SERVICE_PORT          value: '3306'      imagePullSecrets:      - name: harbor-secret---apiVersion: v1kind: Servicemetadata:  name: mywebspec:  type: NodePort  ports:    - port: 8080      nodePort: 30001  selector:    app: myweb

19.应用资源配置清单并查看

1.删除资源配置清单[root@node1 ~]# kubectl delete -f tomcat-demo.yaml2.创建新的资源[root@node1 ~]# kubectl create -f tomcat-demo.yaml deployment.apps/mysql createdservice/mysql createddeployment.apps/myweb createdservice/myweb created3.查询下载的资源kubectl get pod -o wide

20.浏览器查看

http://10.0.0.11:30001/demo

8ab11495b3f0c6803c7eef6a9db80591.png

报错总结:

#报错总结:1.如果要删除的镜像正在被容器使用,那么你是删不了的2.harbor卸载不干净,/data/harbor/目录下的数据也要删除3.secret配置只写了一个dp,实际上有几个deployment就需要写几个重做k8s使用harbor作为私有仓库1.停止harbor正在运行的容器2.删除harbor的容器docker ps -a|grep "goharbor"|awk '{print "docker rm "$1}'3.删除harbor的镜像dockerimages|grep "goharbor"|awk '{print "docker rmi "$1":"$2}'4.解压并修改harbor配置文件hostname: 10.0.0.11port: 8888harbor_admin_password: 123456data_volume: /data/harbor5.执行安装并访问./install.shhttp://10.0.0.11:88886.创建一个私有仓库k8s7.配置docker信任仓库并重启--三台服务器都操作!!!    {      "registry-mirrors": ["https://ig2l319y.mirror.aliyuncs.com"],      "exec-opts": ["native.cgroupdriver=systemd"],      "insecure-registries" : ["http://10.0.0.11:8888"]    }systemctl restart docker注意!!!node1重启后harbor会失效,需要重启harborcd /opt/harbordocker-compose stopdocker-compose start8.docker登陆harbordocker login 10.0.0.11:88889.将docker登陆凭证转化为k8s能识别的base64编码[root@node1 ~]# cat /root/.docker/config.json|base64ewoJImF1dGhzIjogewoJCSIxMC4wLjAuMTE6ODg4OCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZNVEl6TkRVMiIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDkuOSAobGludXgpIgoJfQp910.编写Secert资源配置清单[root@node1 ~/demo]# cat harbor-secret.yaml apiVersion: v1kind: Secretmetadata:  name: harbor-secretdata:  .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxMC4wLjAuMTE6ODg4OCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZNVEl6TkRVMiIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTguMDkuOSAobGludXgpIgoJfQp9type: kubernetes.io/dockerconfigjson11.应用Secret资源kubectl delete -f harbor-secret.yaml kubectl create -f harbor-secret.yamlkubectl get secrets12.修改镜像tag并上传到harbordocker tag kubeguide/tomcat-app:v1 10.0.0.11:8888/k8s/tomcat-app:v1docker tag mysql:5.7 10.0.0.11:8888/k8s/mysql:5.7docker push 10.0.0.11:8888/k8s/tomcat-app:v1docker push 10.0.0.11:8888/k8s/mysql:5.7 13.修改demo资源配置清单####mysqlimagePullSecrets:      - name: harbor-secret###tomcatimagePullSecrets:      - name: harbor-secret14.应用资源清单并查看kubectl apply -f .kubectl get pod

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

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

相关文章

vue3中使用cookie

前端使用cookie 步骤一 编写方法cookie.ts //获取cookie、 const CooieTool {getCookie: (name: string) > {var arr, reg new RegExp("(^| )" name "([^;]*)(;|$)");if (arr document.cookie.match(reg))return (arr[2]);elsereturn null;},//设…

无人机、IoT 都危险?第五代网络威胁有哪些特点

从无序中寻找踪迹&#xff0c;从眼前事探索未来。2021 年正值黄金十年新开端&#xff0c;CSDN 以中立技术社区专业、客观的角度&#xff0c;深度探讨中国前沿 IT 技术演进&#xff0c;推出年度重磅企划栏目——「拟合」&#xff0c;通过对话企业技术高管大咖&#xff0c;跟踪报…

持续定义SaaS模式云数据仓库+Serverless

导读&#xff1a;今天主要和大家交流的是网易在数据湖 Iceberg 的一些思考与实践。从网易在数据仓库建设中遇到的痛点出发&#xff0c;介绍对数据湖 Iceberg 的探索以及实践之路。 主要内容包括&#xff1a; 数据仓库平台建设的痛点数据湖 Iceberg 的核心原理数据湖 Iceberg 社…

循序渐进db2 第3版_「图书推荐」焊接工程师手册第3版

机械工业出版社陈祝年 陈茂爱 著内容介绍《焊接工程师手册》(第3版)是焊接专业的综合性工具书&#xff0c;基本涵盖了焊接专业的技术内容。本版在保留第2版精华和特色的基础上添加了先进的工艺技术内容。全书共9篇58章。第1篇汇集了焊接工程师最常用而又不易记忆的符号、公式和…

阿里云推出业内首个云原生企业级数据湖解决方案:将在今年双11大规模应用

简介&#xff1a; 数据湖高峰论坛在京召开&#xff0c;阿里云宣布推出业内首个云原生企业级数据湖解决方案&#xff0c;提供EB级数据存储、分析能力&#xff0c;可一站式实现湖存储、湖加速、湖管理、湖计算&#xff0c;帮助企业对数据深入挖掘与分析&#xff0c;洞察其中蕴含的…

Serverless对研发效能的变革和创新

对企业而言&#xff0c;Serverless 架构有着巨大的应用潜力。随着云产品的完善&#xff0c;产品的集成和被集成能力的加强&#xff0c;软件交付流程自动化能力的提高&#xff0c;我们相信在 Serverless 架构下&#xff0c;企业的敏捷性有 10 倍提升的潜力。本次分享我主要分为以…

c3p0 服务启动获取连接超时_微服务架构中的熔断、降级

微服务架构中熔断和降级是保证服务高可用的一项重要功能点&#xff0c;微服务区别于一体化项目的最大区别也再于熔断和降级&#xff0c;很多微服务项目的开发人员对熔断的理解就是当服务不可用的时候&#xff0c;为了让整体服务可以正常运行&#xff0c;需要让后续的请求直接返…

重塑APM标杆,博睿数据战略升级助力企业数字化转型

&#xff08;博睿数据发布仪式&#xff09; 2021年5月26日&#xff0c;由博睿数据举办的“服务可达 达者为先博睿数据2021年战略升级发布巡展”北京站&#xff0c;在北京金茂威斯汀大饭店圆满举行&#xff01;本次战略升级发布巡展不仅揭开了“数据链DNA”的神秘面纱&#xff…

持续定义SaaS模式云数据仓库+数据银行

简介&#xff1a; 本文将介绍SaaS模式云数据仓库MaxCompute&#xff0c;如何助力数据银行SaaS模式云战略和一体化数据开放场景介绍。 一、云数据仓库 本章节介绍云数据仓库带来的价值及解决方案。 MaxCompute&#xff1a;SaaS模式企业级云数据仓库的应用场景包括广告场景-用…

2020-10-28

Kubernetes的门户-Ingress 目前Kubernetes&#xff08;K8s&#xff09;已经真正地占领了容器编排市场&#xff0c;是默认的云无关计算抽象&#xff0c;越来越多的企业开始将服务构建在K8s集群上。在K8s中&#xff0c;组件通过Service对外暴露服务&#xff0c;常见的包括NodePo…

530并行日:用超算更省心

科技兴&#xff0c;则民族兴&#xff1b;科技强&#xff0c;则国家强。 从“神舟”飞天、“蛟龙”入海、“天眼”遥看宇宙&#xff0c;到“嫦娥”奔月、“天问”探火、“量子”惊叹世界&#xff0c;这些世人瞩目的科技成就背后&#xff0c;是一代又一代的中国科技工作者前赴后继…

Flink SQL 1.11 on Zeppelin 平台化实践

简介&#xff1a; 鉴于有很多企业都无法配备专门的团队来解决 Flink SQL 平台化的问题&#xff0c;那么到底有没有一个开源的、开箱即用的、功能相对完善的组件呢&#xff1f;答案就是本文的主角——Apache Zeppelin。 作者&#xff1a;LittleMagic 大数据领域 SQL 化开发的风…

控件设置相对位置_惊人的Divi转换控件!

Divi的变换控件释放了许多新的设计可能你可以使用一系列新设计选项来执行惊人的设计&#xff0c;而到目前为止&#xff0c;只有在诸如Photoshop之类的图形设计程序中才可以这样操作。Divi引入了一项全新功能&#xff0c;该功能允许在Divi Builder中进行惊人的徒手设计&#xff…

第三代英特尔至强可扩展处理器,英特尔数据中心的“芯法宝”

作者 | 宋 慧 出品 | CSDN云计算 头图 | 付费下载于东方IC 距离英特尔发布第三代至强可扩展处理器Ice Lake的全系列产品&#xff0c;已经过去一个多月了。全新一代的至强处理器除了核数增加、性能提升与架构升级以外&#xff0c;还首次将SGX英特尔软件防护扩展技术&#xff08…

谈谈我对零售云在云原生总结与思考

简介&#xff1a; 云原生是零售云的最重要的技术底座&#xff0c;云原生是什么&#xff0c;会走向哪里&#xff0c;在零售2B交付的场景上该如何应用&#xff0c;怎么能够结合帮助建设零售云系列产品体系&#xff0c;值得我们的思考和探索&#xff0c;也将有效指导我们接下来几年…

oracle查看编码

select * from nls_database_parameters where parameter NLS_CHARACTERSET;

类选择器遍历赋值_利用反射实现配置表数据到类对象数据的转换

在游戏开发中&#xff0c;配置表是不可少的。通常我们将一个类&#xff0c;做成一个配置表&#xff0c;将配置表每列的索引都和类的字段名严格对应起来。先实例化一个类的对象&#xff0c;然后通过反射来遍历类中的字段&#xff0c;通过field.SetValue()给类的对象赋值。但是配…

人工智能如何提升大数据存储与管理效率?

简介&#xff1a; 通过使用AI数据存储&#xff0c;供应商和企业可以将存储管理提升到一个新的水平。而且&#xff0c;存储管理员可以找到他们目前正在努力管理的指标的解决方案。 随着大数据的大量来源以及企业可用数据量的增加&#xff0c;存储容量规划已成为存储管理员的问题…

wildfly10 (JBoss)如何部署SSL证书

文章目录1. 证书下载2. 证书配置2. 效果验证项目用的wildfly-10.1.0.Final。需要用到SSL证书&#xff0c;把部署过程记录下来&#xff0c;以供参考。1. 证书下载 本文的证书申请都来自阿里云。 1.首先把你的域名做好解析。 2.从阿里云上下载申请的SSL证书&#xff0c;类型选择…

奇点云集聚数据中台优势,加速企业数智化升级

作者 | 寇雪芹 出品 | CSDN云计算 头图 | 下载于视觉中国 近日&#xff0c;以“应云而生 原力觉醒”为主题的 StartDT Day 数据技术大会在杭州举办。会上&#xff0c;奇点云发布了最新的数据技术战略“跨平台、云原生、自主可控”、云原生数据中台 DataSimba R3.0、消费者数字…