在Mac上安装minikube,运行了registry容器并把应用程序push上去。
$ curl http://localhost:5000/v2/_catalog
{"repositories":["app1"]}
在kubernetes的部署配置文件中:
...
spec:
replicas: 3
template:
metadata:
labels:
app: app1
tier: backend
spec:
containers:
- image: localhost:5000/app1
name: app1
...
dashboard的Pods中出现错误:
Failed to pull image "localhost:5000/app1": rpc error: code = 2 desc = Error while pulling image: Get http://localhost:5000/v1/repositories/app1/images: dial tcp 127.0.0.1:5000: getsockopt: connection refused
Error syncing pod
从这个看到了解决办法:
换了docker-machine:
eval $(minikube docker-env)
在执行这一步时:
kubectl port-forward --namespace kube-system \
$(kubectl get po -n kube-system | grep kube-registry-v0 | \
awk '{print $1;}') 5000:5000
一直pending没反应:
Forwarding from 127.0.0.1:5000 -> 5000
为什么?怎么做?
这样做:
启动minikube:
把本地docker images打tag带上Kubernetes IP:
在本地
insecure registries
里加入:192.168.99.100:5000
推动到Kubernets的registry里:
查看K8S的registry:
切换docker machine到minikube:
进行部署编排操作。镜像访问:
192.168.99.100:5000/app1[:tag]
有用的资源