k8s中使用harbor
参考地址:https://www.cnblogs.com/wayneiscoming/p/7716238.html 1、在harbor的ui界面上注册一个账号 姓名:zihao 全名:zhuzihao 密码:Zihao@5tgb 邮箱:15613691030@163.com 2、在需要下载镜像的机器上,同样需要修改docker进程参数(跟上传镜像到私有仓库一样操作进行修改) 在node节点配置: [root@reg harbor]# vi /etc/docker/daemon.json { "registry-mirrors": ["https://wb2g6zxl.mirror.aliyuncs.com"],"insecure-registries": ["192.168.43.65:5000"]} [root@reg harbor]# systemctl restart docker 3、在node节点验证登录harbor主机 [root@lab2 ~]# docker login 192.168.43.65:5000 Username (zihao): zihao Password: Login Succeeded [root@lab2 ~]# docker logout Not logged in to https://index.docker.io/v1/ 4、配置私有仓库harbor的secret 在harbor这台上先登录,输入docker login登陆成功后,会在 /root/.docker/ 目标下生成一个 config.json 文件 [root@reg harbor]# docker login 192.168.43.65:5000 Username (admin): admin Password: Login Succeeded [root@reg harbor]# ls /root/.docker/ config.json [root@reg harbor]# cat /root/.docker/config.json { "auths": { "192.168.43.65:5000": { "auth": "YWRtaW46SGFyYm9yMTIzNDU=" }, "wb2g6zxl.mirror.aliyuncs.com": { "auth": "YWRtaW46SGFyYm9yMTIzNDU=" } } } 创建secret 准备: kubectl create secret docker-registry registry-secret --namespace=default \ --docker-server=192.168.43.65:5000 --docker-username=zihao \ --docker-password=Zihao@5tgb --docker-email=15613691030@163.com 创建: [root@lab2 nginx-harbor]# kubectl create secret docker-registry registry-secret --namespace=default \ > --docker-server=192.168.43.65:5000 --docker-username=zihao \ > --docker-password=Zihao@5tgb --docker-email=15613691030@163.com 查看secret [root@lab2 nginx-harbor]# kubectl get secret NAME TYPE DATA AGE default-token-czfbg kubernetes.io/service-account-token 3 21d registry-secret kubernetes.io/dockerconfigjson 1 1h 删除secret [root@lab2 nginx-harbor]# kubectl delete secret registry-secret secret "registry-secret" deleted 5、在k8s的node节点中使用yaml拉取镜像 注意: image不要写成 http:// 这样无法拉取镜像 下面两句不写也可以 imagePullSecrets: - name: registry-secret spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet containers: - name: http-test-con image: 192.168.43.65:5000/library/nginx/latest:latest imagePullPolicy: Always ports: - containerPort: 80 imagePullSecrets: - name: registry-secret 测试: [root@lab2 nginx-harbor]# vi http-test.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: http-test-dm2 spec: replicas: 1 template: metadata: labels: name: http-test-dm2 spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet containers: - name: http-test-con image: 192.168.43.65:5000/library/nginx/latest:latest imagePullPolicy: Always ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: http-nginx-ser spec: type: NodePort ports: - port: 80 nodePort: 30000 targetPort: 80 selector: name: http-test-dm2 --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: grafana spec: rules: - host: www.nginx2.com http: paths: - path: / backend: serviceName: http-nginx-ser servicePort: 80 [root@lab2 nginx-harbor]# kubectl create -f http-test.yaml [root@lab2 nginx-harbor]# kubectl get po NAME READY STATUS RESTARTS AGE http-test-dm2-7f9c4fd896-jkkrx 1/1 Running 0 8m
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决