目录
一、在 Docker harbor 节点(192.168.246.14)上操作
2.3在每个 node 节点配置连接私有仓库(注意每行后面的逗号要添加)
2.5在一个 node 节点下载 Tomcat 镜像进行推送
2.11删除之前在 node 节点下载的 Tomcat 镜像
2.13查看 Pod 的描述信息,可以发现镜像是从 harbor 下载的
2.14刷新 harbor 页面,可以看到镜像的下载次数增加了
一、在 Docker harbor 节点(192.168.246.14)上操作
1.1关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
1.2 安装docker
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
建议不要使用最新版本的 Docker,会存在与 api-server 版本不兼容,安装20版本的docker
yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18
1.3上传软件表到 /opt 目录中
上传 docker-compose 和 harbor-offline-installer-v1.2.2.tgz 到 /opt 目录中
上传 docker-compose 和 harbor-offline-installer-v1.2.2.tgz 到 /opt 目录中
cd /opt
chmod +x docker-compose
mv docker-compose /usr/local/bin/
二、部署 Harbor 服务
2.1修改配置
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
vim /usr/local/harbor/harbor.cfg
--5行--修改,设置为Harbor服务器的IP地址或者域名
hostname = 192.168.246.14
cd /usr/local/harbor/
./install.sh
解决问题:安装20版本docker
yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18
2.2在 Harbor 中创建一个新项目
(1)浏览器访问:http://192.168.246.14登录 Harbor WEB UI 界面,默认的管理员用户名和密码是 admin/Harbor12345
(2)输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮
(3)填写项目名称为“kgc-project”,点击“确定”按钮,创建新项目
2.3在每个 node 节点配置连接私有仓库(注意每行后面的逗号要添加)
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://6ijb8ubo.mirror.aliyuncs.com"],
"insecure-registries":["192.168.246.14"]
}
EOF
systemctl daemon-reload
systemctl restart docker
2.4在每个 node 节点登录 harbor 私有仓库
docker login -u admin -p Harbor12345 http://192.168.246.14
2.5在一个 node 节点下载 Tomcat 镜像进行推送
docker pull tomcat:8.0.52 #拉取镜像
docker images
docker tag tomcat:8.0.52 192.168.246.14/zzz-project/tomcat:v1 #打标签
docker images
docker push 192.168.246.14/zzz-project/tomcat:v1 #推镜像
2.6查看登陆凭据
cat /root/.docker/config.json |base64 -w 0 #base64 -w 0:进行 base64 加密并禁止自动换行
ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjI0Ni4xNCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9IgoJCX0KCX0KfQ==
2.7创建 harbor 登录凭据资源清单
创建 harbor 登录凭据资源清单,用于 K8S 访问 Harbor 私服拉取镜像所需要的密钥权限凭证 secret 资源
vim harbor-pull-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: harbor-pull-secret
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjI0Ni4xNCI6IHsKCQkJImF1dGgiOiAiWVdSdGFXNDZTR0
Z5WW05eU1USXpORFU9IgoJCX0KCX0KfQ== ##复制粘贴上述查看的登陆凭据
2.8创建 secret 资源
kubectl create -f harbor-pull-secret.yaml
2.9查看 secret 资源
kubectl get secret
2.10创建资源从 harbor 中下载镜像
cd /opt/demo
vim tomcat-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-tomcat
spec:
replicas: 2
selector:
matchLabels:
app: my-tomcat
template:
metadata:
labels:
app: my-tomcat
spec:
imagePullSecrets: #添加 K8S 访问 Harbor 私服拉取镜像所需要的 secret 资源选项
- name: harbor-pull-secret #指定 secret 资源名称
containers:
- name: my-tomcat
image: 192.168.246.14/kgc-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
cd /opt/demo/
vim tomcat-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-tomcat
spec:
replicas: 2
selector:
matchLabels:
app: my-tomcat
template:
metadata:
labels:
app: my-tomcat
spec:
imagePullSecrets: #添加 K8S 访问 Harbor 私服拉取镜像所需要的 secret 资源选项
- name: harbor-pull-secret #指定 secret 资源名称
containers:
- name: my-tomcat
image: 192.168.246.14/zzz-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
2.11删除之前在 node 节点下载的 Tomcat 镜像
docker rmi tomcat:8.0.52
docker rmi 192.168.246.14/zzz-project/tomcat:v1
docker images
2.12创建资源
kubectl create -f tomcat-deployment.yaml
kubectl get pods
NAME READY STATUS RESTARTS AGE
my-tomcat-d55b94fd-29qk2 1/1 Running 0
my-tomcat-d55b94fd-9j42r 1/1 Running 0
2.13查看 Pod 的描述信息,可以发现镜像是从 harbor 下载的
kubectl describe pod my-tomcat-d55b94fd-29qk2