目录
(1)在docker harbor 上(192.168.204.176)上环境准备
- systemctl stop firewalld.service
- systemctl disable firewalld.service
- setenforce 0
-
- yum install -y yum-utils device-mapper-persistent-data lvm2
- yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- yum install -y docker-ce
- systemctl start docker.service
- systemctl enable docker.service
- docker version
(2)部署harbor
- #上传 docker-compose 和 harbor-offline-installer-v1.2.2.tgz 到 /opt 目录中
- cd /opt
- chmod +x docker-compose
- mv docker-compose /usr/local/bin/
-
-
- #部署 Harbor 服务
- tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
-
- vim +5 /usr/local/harbor/harbor.cfg
- --5行--修改,设置为Harbor服务器的IP地址或者域名
- hostname = 192.168.204.176
-
- cd /usr/local/harbor/
- ./install.sh
(3)登录harbor,创建项目
- /#在 Harbor 中创建一个新项目
- (1)浏览器访问:http://192.168.204.176 登录 Harbor WEB UI 界面,默认的管理员用户名和密码是 admin/Harbor12345
- (2)输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮
- (3)填写项目名称为“david-project”,点击“确定”按钮,创建新项目
(4)每个node节点登录harbor ,上传镜像
- #在每个 node 节点配置连接私有仓库(注意每行后面的逗号要添加)
- cat > /etc/docker/daemon.json <<EOF
- {
- "registry-mirrors": ["https://XXXXXXXX.mirror.aliyuncs.com"],
- "exec-opts": ["native.cgroupdriver=systemd"],
- "log-driver": "json-file",
- "log-opts": {
- "max-size": "100m"
- },
- "insecure-registries": ["https://hub.david.com"]
- }
- EOF
-
- systemctl daemon-reload
- systemctl restart docker
-
-
-
- #在每个 node 节点登录 harbor 私有仓库
- docker login hub.david.com -u admin -p Harbor12345
-
- #在一个 node 节点下载 Tomcat 镜像进行推送
- docker pull tomcat:8.0.52
- docker images
-
- docker tag tomcat:8.0.52 hub.david.com/david-project/tomcat:v1
- docker images
-
- docker push hub.david.com/david-project/tomcat:v1
(5) 配置凭据
- #查看登陆凭据
- #base64 -w 0:进行 base64 加密并禁止自动换行
- cat /root/.docker/config.json | base64 -w 0
- ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjIzLjEwIjogewoJCQkiYXV0aCI6ICJZV1J0YVc0NlNHRnlZbTl5TVRJek5EVT0iCgkJfSwKCQkiaHViLmNvbSI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0KfQ==
- #master 节点上 创建 harbor 登录凭据资源清单
- vim harbor-pull-secret.yaml
- apiVersion: v1
- kind: Secret
- metadata:
- name: harbor-pull-secret
- data:
- .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjIzLjEwIjogewoJCQkiYXV0aCI6ICJZV1J0YVc0NlNHRnlZbTl5TVRJek5EVT0iCgkJfSwKCQkiaHViLmNvbSI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0KfQ== #复制粘贴上述查看的登陆凭据
- type: kubernetes.io/dockerconfigjson
-
-
- #创建 secret 资源
- kubectl create -f harbor-pull-secret.yaml
-
- #查看 secret 资源
- kubectl get secret
-
-
-
- #创建资源从 harbor 中下载镜像
- cd /opt/demo
- vim tomcat-deployment.yaml
- apiVersion: extensions/v1beta1
- kind: Deployment
- metadata:
- name: my-tomcat
- spec:
- replicas: 2
- template:
- metadata:
- labels:
- app: my-tomcat
- spec:
- imagePullSecrets: #添加拉取 secret 资源选项
- - name: harbor-pull-secret #指定 secret 资源名称
- containers:
- - name: my-tomcat
- image: hub.david.com/david-project/tomcat:v1 #指定 harbor 中的镜像名
- ports:
- - containerPort: 80
- ---
- apiVersion: v1
- kind: Service
- metadata:
- name: my-tomcat
- spec:
- type: NodePort
- ports:
- - port: 8080
- targetPort: 8080
- nodePort: 31111
- selector:
- app: my-tomcat
- #node节点删除之前在 node 节点下载的 Tomcat 镜像
- docker rmi tomcat:8.0.52
- docker rmi hub.david.com/david-project/tomcat:v1
- docker images
- #master 节点创建资源
- kubectl create -f tomcat-deployment.yaml
-
- kubectl get pods
-
-
- #查看 Pod 的描述信息,可以发现镜像时从 harbor 下载的
- kubectl describe pod my-tomcat-5cbd9896c6-kb62r
-
-
- #刷新 harbor 页面,可以看到镜像的下载次数增加了
安装过程可参考之前章节 :
云原生Kubernetes:Kubeadm部署K8S单Master架构-CSDN博客
(1)已安装harbor
查询版本
(2)登录harbor,创建项目
(3) 在一个 node 节点下载 Tomcat 镜像进行推送
(4)配置凭证
node节点配置凭证
master 节点上 创建 harbor 登录凭据资源清单
创建 secret 资源
查看 secret 资源
创建资源从 harbor 中下载镜像
node节点删除之前在 node 节点下载的 Tomcat 镜像
master 节点创建资源
查看pod
查看svc
查看 Pod 的描述信息,可以发现镜像时从 harbor 下载的
刷新 harbor 页面,可以看到镜像的下载次数增加了
(1)报错
(2)原因分析
harbor未启动
(3)解决方法
启动harbor
Windows桌面进入-终端管理员
输入notepad
选择所有文件
打开hosts
增加如下行:
(1)报错
(2)原因分析
登录凭证错误
(3)重新修改
修改前:
修改后:
(1)报错
(2)原因分析
端口范围错误
(3)解决方法
修改nodePort端口为31111
修改前:
修改后: