k8s拉取harbor镜像部署

在k8s中创建凭证

首先在节点docker登录harbor, 登录成功之后会在$HOME/.docker/ 生成一个config.json文件,这个就是登录凭证,后面docker pull就不需要再登录了。但是如果在k8s发布pod或者deploment时,这个凭证要在k8s中创建一个对应secret,然后挂载到pod 或 deployment中的yaml中,这样k8s才能下载镜像,否则提示权限验证错误。

生成凭证:

yaml 复制代码
kubectl create secret generic harborregcred[凭证的名称] --from-file=.dockerconfigjson=$HOME/.docker/config.json  --type=kubernetes.io/dockerconfigjson

insecure-registries配置

docker1.3.2版本开始默认docker registry使用的是https,我们设置Harbor默认http方式,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错。

解决办法:配置/etc/docker/daemon.json,在需要连接Harbor仓库的机器上面,编辑/etc/docker/daemon.json,如果没有就要创建文件,添加以下内容。注意不是安装harbor的机器

yaml 复制代码
{
    "registry-mirrors": ["https://hccwwfjl.mirror.aliyuncs.com"],
    "insecure-registries":["harbor的ip地址:端口号"]
}

重启docker 服务: systemctl daemon-reload && systemctl restart docker

创建命名空间

yaml 复制代码
若不指定命名空间会到default里
命令创建: kubectl create namespace demo
kuboard面板创建:  直接新建

使用 deployment 部署 pod

命令创建: kubectl apply -f deployment.yml

kuboard面板创建: 从yaml新建

yaml 复制代码
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-spring-boot-app
  namespace: demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-spring-boot-app
  template:
    metadata:
      labels:
        app: my-spring-boot-app
    spec:
      containers:
      - name: my-spring-boot-app
        image: 'harbor的ip:端口/项目名/镜像名:标签'
        ports:
        - containerPort: 8080

使用 Service使应用程序可以从集群外部访问

命令创建: kubectl apply -f service.yml

kuboard面板创建: 从yaml新建

yaml 复制代码
apiVersion: v1
kind: Service
metadata:
  name: my-spring-boot-app-service
  namespace: vmware-local
spec:
  selector:
    app: my-spring-boot-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer

References:
Linux登录连接Harbor报错http: server gave HTTP response to HTTPS client
【k8s】k8s集群中拉取需要登录的私有镜像库
Kubernetes(k8s)常用yaml配置和注释详解
Kubernetes(k8s)Ingress原理
K8S中的ingress

相关推荐
名字还没想好☜28 分钟前
Kubernetes CrashLoopBackOff 排查全流程:从 describe 到日志到 exit code
运维·docker·云原生·容器·kubernetes
冰封之寂1 小时前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器
Cloud云卷云舒2 小时前
AI Agent记忆系统:分层记忆体系的技术架构与实践
云原生·ai-native·haishandb
Ulyanov2 小时前
Python雷达电子对抗仿真引擎(一):打破单体瓶颈,构建微服务与ECS架构的顶层设计
开发语言·python·微服务·云原生·架构·雷达电子对抗
spider_xcxc4 小时前
Helm 部署 K8s 集群完整笔记
java·开发语言·kubernetes
窝子面4 小时前
认识Docker与启动容器与镜像的关系
运维·docker·容器
张忠琳17 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
阿里云云原生18 小时前
让 AI Agent 看见正在发生的业务,阿里云 EventHouse 正式商业化
云原生
Elastic 中国社区官方博客18 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
AOwhisky20 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发