from:http://blog.csdn.net/linuxgo/article/details/52121125
docker pull gcr.io/google_containers/pause-amd64:3.0
傳到私有docker registry
docker tag gcr.io/google_containers/pause-amd64:3.0 k8s-docker.mydomain.com/google_containers/pause-amd64:3.0
docker push k8s-docker.mydomain.com/google_containers/pause-amd64:3.0
2) 在所有的k8s節(jié)點
docker pull k8s-docker.mydomain.com/google_containers/pause-amd64:3.0
docker tag k8s-docker.mydomain.com/google_containers/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0
加快Kubernetes編譯速度
除了Linux/amd64,默認(rèn)還會為其他平臺做交叉編譯。為了減少編譯時間,可以修改hack/lib/golang.sh,把KUBE_SERVER_PLATFORMS, KUBE_CLIENT_PLATFORMS和KUBE_TEST_PLATFORMS中除linux/amd64以外的其他平臺注釋掉
gcr.io無法訪問
Kubernetes在創(chuàng)建Pod的時候,需要從gcr.io下載一個helper鏡像(目前是 gcr.io/google_containers/pause-amd64:3.0 )。
但是目前國內(nèi)無法訪問gcr.io,這個問題會導(dǎo)致無法下載該鏡像,然后Pod一直處于ContainerCreating狀態(tài)。
解決辦法
1) 在可以訪問gcr.io的地方docker pull gcr.io/google_containers/pause-amd64:3.0
傳到私有docker registry
docker tag gcr.io/google_containers/pause-amd64:3.0 k8s-docker.mydomain.com/google_containers/pause-amd64:3.0
docker push k8s-docker.mydomain.com/google_containers/pause-amd64:3.0
2) 在所有的k8s節(jié)點
docker pull k8s-docker.mydomain.com/google_containers/pause-amd64:3.0
docker tag k8s-docker.mydomain.com/google_containers/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0
Note
不通過私有registry中轉(zhuǎn),而是使用Docker save/load應(yīng)該也可以,只是要把save導(dǎo)出的文件復(fù)制到所有節(jié)點.
如何從集群外訪問Service和Pod
這里說的集群外是指K8s集群以外的主機(jī),比如使用nginx/HAProxy搭建的負(fù)載均衡主機(jī)。這些主機(jī)跟K8s集群部署在一起,到K8s網(wǎng)絡(luò)可達(dá)。
對于不是部署在GCE以及AWS等云平臺的K8s,我們一般需要自己搭建負(fù)載均衡,然后分發(fā)請求到到Service。
使用NodePort方式發(fā)布服務(wù),那么負(fù)載均衡主機(jī)上不需要額外配置;使用ClusterIP方式,為了能夠訪問Service的ClusterIP, 需要在這些主機(jī)上安裝Flanneld和kube-proxy