from:http://blog.csdn.net/linuxgo/article/details/52121125

加快Kubernetes編譯速度

除了Linux/amd64,默認(rèn)還會(huì)為其他平臺(tái)做交叉編譯。為了減少編譯時(shí)間,可以修改hack/lib/golang.sh,把KUBE_SERVER_PLATFORMS, KUBE_CLIENT_PLATFORMS和KUBE_TEST_PLATFORMS中除linux/amd64以外的其他平臺(tái)注釋掉

gcr.io無(wú)法訪問(wèn)

Kubernetes在創(chuàng)建Pod的時(shí)候,需要從gcr.io下載一個(gè)helper鏡像(目前是 gcr.io/google_containers/pause-amd64:3.0 )。

但是目前國(guó)內(nèi)無(wú)法訪問(wèn)gcr.io,這個(gè)問(wèn)題會(huì)導(dǎo)致無(wú)法下載該鏡像,然后Pod一直處于ContainerCreating狀態(tài)。

解決辦法

1) 在可以訪問(wèn)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é)點(diǎn)

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

不通過(guò)私有registry中轉(zhuǎn),而是使用Docker save/load應(yīng)該也可以,只是要把save導(dǎo)出的文件復(fù)制到所有節(jié)點(diǎn).

如何從集群外訪問(wèn)Service和Pod

這里說(shuō)的集群外是指K8s集群以外的主機(jī),比如使用nginx/HAProxy搭建的負(fù)載均衡主機(jī)。這些主機(jī)跟K8s集群部署在一起,到K8s網(wǎng)絡(luò)可達(dá)。

對(duì)于不是部署在GCE以及AWS等云平臺(tái)的K8s,我們一般需要自己搭建負(fù)載均衡,然后分發(fā)請(qǐng)求到到Service。

使用NodePort方式發(fā)布服務(wù),那么負(fù)載均衡主機(jī)上不需要額外配置;使用ClusterIP方式,為了能夠訪問(wèn)Service的ClusterIP, 需要在這些主機(jī)上安裝Flanneld和kube-proxy