主页 > 创业  > 

k8s拉取harbor镜像部署

k8s拉取harbor镜像部署
在k8s中创建凭证

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

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的机器

{ "registry-mirrors": [" hccwwfjl.mirror.aliyuncs "], "insecure-registries":["harbor的ip地址:端口号"] } 重启docker 服务: systemctl daemon-reload && systemctl restart docker 创建命名空间 若不指定命名空间会到default里 命令创建: kubectl create namespace demo kuboard面板创建: 直接新建 使用 deployment 部署 pod

命令创建: kubectl apply -f deployment.yml kuboard面板创建: 从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新建

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 通过 Ingress 访问您的应用

命令创建: kubectl apply -f ingress .yml kuboard面板创建: 从yaml新建

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-demo-app namespace: vmware-local spec: ingressClassName: nginx rules: - host: .k8s http: paths: - backend: service: name: demo-api-service port: number: 8888 path: / pathType: Prefix status: loadBalancer: {}

修改host即可访问 域名加开发端口

安装 Ingress Controller

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

标签:

k8s拉取harbor镜像部署由讯客互联创业栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“k8s拉取harbor镜像部署