Kubernetes 搭建有四種方式窄锅,簡(jiǎn)單評(píng)價(jià)一下:
1.基于Docker 本地運(yùn)行Kubernetes 先決條件: http://www.cnblogs.com/zhangeamon/p/5197655.html 參考資料: https://github.com/kubernetes/community/blob/master/contributors/devel/local-cluster/docker.md Install kubectl and shell auto complish: 評(píng)價(jià): 這種方式我沒有搭建成功,一直有can not connet 127.0.0.1:8080 的問題锐朴,后面感覺是沒有創(chuàng)建./kube目錄的原因或舞。不過沒有再試
2.用minikube minikube是一個(gè)適合于在單機(jī)環(huán)境下搭建荆姆,它是創(chuàng)建出一個(gè)虛擬機(jī)來,并且Kubernetes官方好像已經(jīng)停止對(duì)基于Docker本地運(yùn)行Kubernetes的支持映凳,參考:https://github.com/kubernetes/minikube胆筒, 但是因?yàn)樗詈靡笫莢irtualbox作為底層虛擬化driver,而我的bare metal 已經(jīng)安裝kvm了诈豌,我試了下存在沖突仆救,所以也就沒有用這種方式進(jìn)行安裝。
3.用kubeadm 它是一個(gè)比較方便安裝Kubernetes cluster的工具矫渔,我也是按照這種方式裝成功的彤蔽。后面會(huì)詳細(xì)記錄這種方式。
4.一步步安裝 每一個(gè)組件每一個(gè)組件進(jìn)行安裝庙洼,我還沒有試顿痪,可以根據(jù):https://github.com/opsnull/follow-me-install-kubernetes-cluster, 比較麻煩送膳。
5.在這里使用第三種kubeadm安裝kunbernetes集群:1.Turn off SELinuxsudo setenforce 0sudo sed -i 's/enforcing/permissive/g' /etc/selinux/config2.Turn off firewalldsudo systemctl stop firewalldsudo systemctl disable firewalld3.Write the Kubernetes repository filecat
(這種方式主要是下載Kubernetes集群服務(wù)所需的微服務(wù)Docker鏡像员魏,同時(shí)由于FW的限制有的鏡像不能下載,這時(shí)就需要通過某些方式從國(guó)內(nèi)下載或者中轉(zhuǎn)后重新tag鏡像名稱)
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=0
EOF
docker pull registry.cn-hangzhou.aliyuncs.com/k8s16/kubernetes-dashboard-amd64
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/pause-amd64:3.0
docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/kube-proxy-amd64:v1.6.4
docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/kube-scheduler-amd64:v1.6.4
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/dnsmasq-metrics-amd64
docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/k8s-dns-sidecar-amd64
vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 1
images=(
pause-amd64:3.0
kube-proxy-amd64:v1.6.4
kube-scheduler-amd64:v1.6.4
kube-controller-manager-amd64:v1.6.4
kube-apiserver-amd64:v1.6.4
etcd-amd64:3.0.17
kube-discovery-amd64:1.0
kubedns-amd64:1.9
kube-dnsmasq-amd64:1.4
exechealthz-amd64:v1.2.0
dnsmasq-metrics-amd64:1.0
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName gcr.io/google_containers/$imageName
docker rmi registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName
done
docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1
images=(
pause-amd64:3.0
kube-proxy-amd64:v1.6.4
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/kube_containers/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/kube_containers/$imageName gcr.io/google_containers/$imageName
docker rmi registry.cn-hangzhou.aliyuncs.com/kube_containers/$imageName
done
yum install -y docker kubelet kubeadm kubectl kubernetes-cni
[root@Master ~]# kubeadm init --pod-network-cidr=10.244.0.0/16
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.6.4
[init] Using Authorization mode: RBAC
[preflight] Running pre-flight checks
[preflight] Starting the kubelet service
[certificates] Generated CA certificate and key.
[certificates] Generated API server certificate and key.
[certificates] API Server serving cert is signed for DNS names [Master kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 10.10.10.21]
[certificates] Generated API server kubelet client certificate and key.
[certificates] Generated service account token signing key and public key.
[certificates] Generated front-proxy CA certificate and key.
[certificates] Generated front-proxy client certificate and key.
[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 14.788750 seconds
[apiclient] Waiting for at least one node to register
[apiclient] First node has registered after 5.003681 seconds
[token] Using token: e3d247.ab91b712406e2ecf
[apiconfig] Created RBAC rules
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run (as a regular user):
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
http://kubernetes.io/docs/admin/addons/
You can now join any number of machines by running the following on each node
as root:
kubeadm join --token e3d247.ab91b712406e2ecf 10.10.10.21:6443
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64:v1.6.0
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/kubernetes-dashboard-amd64
images=(
kubernetes-dashboard-amd64:v1.6.0
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName
docker tag? registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName gcr.io/google_containers/$imageName
docker rmi? registry.cn-hangzhou.aliyuncs.com/google-containers/$imageName
done