通過Docker部署Kubernetes集群

Kubernetes 搭建有四種方式,簡單評價(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: 評價(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)停止對基于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í)就需要通過某些方式從國內(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容