一、编辑daemo.json文件
vim /etc/docker/daemon.json
二、安装Harbor
1、Harbor 官方地址:https://github.com/goharbor/harbor/releases
2、解压软件包: tar zxvf harbor-offline-installer-<version>.tgz
3、配置harbor.cfg:进入解压的harbor,找到配置文件harbor.cfg。
a、必选参数
hostname:目标的主机名或者完全限定域名
ui_url_protocol:http或https。默认为http
db_password:用于db_auth的MySQL数据库的根密码。更改此密码进行任何生产用途
max_job_workers:(默认值为3)作业服务中的复制工作人员的最大数量,对于每个映像复制作业,工作人员将存储库的所有标签同步到远程目标。增加此数字允许系统中更多的并发复制作业。但是,由于每个工作人员都会消耗一定的网络/CPU/IO资源,请根据主机的硬件资源,仔细选择该属性的值。
customize_crt:(on或off:默认为on)当此属性打开时,prepare脚本将为注册表的令牌的生成/验证创建私钥和跟证书
ssl_cert:SSL证书的路径,仅当协议设置为https时才应用
ssl_cert_key:SSL密钥的路径,仅当协议设置为https时才应用
secretkey_path: 用于在复制策略中加密或解密远程注册表的密码的密钥路径
4、创建https证书以及配置相关目录权限
openssl gensa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -rep -days 365 -in server.csr -signkey server.key -out server.crt
mkdir /data/cert
chmod -R 777 /data/cert
5、运行脚本进行安装
./install.sh
6、访问测试
① https://reg.yourdomain.com的管理门户(将reg.yourdomain.com更改为您的主机名harbor.cfg)。请注意,默认管理员用户名/密码为admin / Harbor12345
② docker登录harbor:docker login https://hub.atguigu.com
拉取docker镜像:docker pull wangyanglinux/myapp:v1
镜像打一个标签:docker tag wangyanglinux/myapp:v1 hub.atguigu.com/library/myapp:v1
推送镜像到k8s:docker push hub.atguigu.com/library/myapp:v1
7、上传镜像进行上传测试
测试启动k8s的pod,刚刚推送的镜像是否可用:
① kubectl run nginx-deployment --image=hub.atguigu.com/library/myapp:v1 --port=80 --replicas=1
② kubectl get deployment
kubectl get rs
③ kubectl get pod -o wide 可以查看pod运行的情况,包括IP,node在哪个节点运行的
curl ip 可以查看通没有
④ 在运行的节点上可以查看:docker ps -a | grep nginx
⑤ 删除节点:kubectl delete pod <name>
⑥ 删除后,再kubectl get pod查看节点,你会发现又有一个新的pod。这是因为我们运行pod的时候设置了副本数为1, --replicas=1,k8s会保证副本数始终为1
⑦ 副本扩容:kubectl scale --replicas=3 deployment/nginx-deployment
通过kubectl get pod -o wide查看运行的情况。
⑧现在运行了三个pod,那我们怎么访问呢?
通过svc来配置访问:
1、kubectl get svc
2、kubectl get deployment
3、kubectl expose deployment nginx-deployment --port=30000 --target-port=80
4、kubectl get svc
curl 10.97.154.59:3000
5、ipvsadm -Ln 查看IP配置的规则
6、kubectl get pod -o wide
7、kubectl get svc
8、修改svc的NodePort:kubectl edit svc nginx-deployment