在使用habor作为镜像仓库时,默认拉取镜像是走的https,如果在安装harbor时没有设置证书,则会报错,timeout,deny之类的错误,如果没有证书的话,就需要修改nginx的配置
在所有需要拉取镜像的机器都要配置,k8s的整个集群都要设置
# vim /etc/docker/daemon.json
{
"insecure-registries": ["192.168.1.47","reg.docker.tb"]
}
多个地址以逗号分隔,如果harbor的地址为IP,则写IP,域名则写域名,默认是80端口,如果是非80端口,则需要指定端口
修改完成后,重启docker
systemctl daemon-reload
systemctl restart docker
如果没有/etc/docker/daemon.json这个文件,则需要创建下,若按照上述方式修改后,docker启动报错,一般是因为/usr/lib/systemd/system/docker.service
这个docker的service文件没有设置正确,需要仔细检查下,修改/etc/docker/daemon.json
和修改/usr/lib/systemd/system/docker.service
这两个只能二选一,不能都配置,否则也会报错,下面看下修改docker.service的方法
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph /data/docker --insecure-registry 192.168.1.1:8000
修改完成后,需要重启
systemctl daemon-reload
systemctl restart docker
删除处于Terminaling或者Pending的状态的pod,需要强制删除才行,方法如下:
kubectl delete pod --force --grace-period=0 istio-operation-web-7568cfc9b5-fwbqk