经过几番折腾终于搞定Kubernetes了,我们要在Openstack上部署Kubernetes集群,使用最新工具Kubeadm来安装,由于不能直接访问Kubernetes的源,我们需要一台可以穿墙的机器,可以是个人电脑,另外需要一台基于Docker快照的云主机,将下载后的所有资源放到这台机器中生成新的Kubernetes快照,用来做为以后Kubernetes集群的系统基础。

下载Kubernetes依赖资源

所有操作在可以穿墙的机器上进行

1,下载安装源

我们使用的kubernetes版本是1.4.5, 参考官方安装文档,http://kubernetes.io/docs/getting-started-guides/kubeadm/ ,配置好源后,仅下载所有Kubernetes依赖的安装包,注意这里不需要再安装Docker了

yum install -y  kubelet kubeadm kubectl kubernetes-cni  --downloadonly --downloaddir=/root/rpmsource
         
         

在安装的时候配置一个本地源。

下载kubernetes镜像

kubernetes一些服务是运行在Docker中的,所以我们需要提前下载好依赖的镜像到本地,然后Push到我们在上文中说到的Registry2.io中


         
         
  1. images =( gcr . io /google_containers/ kube - proxy - amd64: v1 .4 .5 gcr . io /google_containers/ kube - apiserver - amd64: v1 .4 .5 gcr . io /google_containers/ kube - scheduler - amd64: v1 .4 .5 gcr . io /google_containers/ kube - controller - manager - amd64: v1 .4 .5 gcr . io /google_containers/ kube - discovery - amd64: 1.0 gcr . io /google_containers/ kubedns - amd64: 1.7 gcr . io /google_containers/ exechealthz - amd64: 1.1 gcr . io /google_containers/ kube - dnsmasq - amd64: 1.3 gcr . io /google_containers/ pause - amd64: 3.0 gcr . io /google_containers/ etcd - amd64: 2.2 .5 weaveworks /weave-npc:1.7.2 weaveworks/ weave - kube: 1.7 .2 weaveworks /scope:0.17.1 weaveworks/ weaveexec: 1.6 .1 )
  2. for imageName in $ { images [@]} ; do
  3. docker pull $imageName
  4. localName = registry2 . io /${imageName/ gcr . io\ //}
  5. docker tag $imageName $localName
  6. docker push $localName
  7. echo $localName
  8. done

注意你要安装的版本号,在用的时候同样的方法pull下来再把tag改回去。

将所有下载好的资源上传到云主机上,并生成一个新的快照做为以后创建Kubernetes集群主机的基础系统!

Kubernetes初始化

现在可以使用Kubernetes的快照创建三台云主机,一台Master,其余的做为Worker,如图


注意网段不要跟Kubernetes的冲突,Kubernetes默认是10,这里改为100!

按照官方文档,安装之后,在Master上做init操作

kubeadm init --use-kubernetes-version=v1.4.5
         
         

需要注意的是一定要等所有的pods都处于Running状态再进行一步操作,比如安装Web UI等

另外需要注意的一点是一定要按照顺序操作,先添加一台子结点再初始化网络,反之始化网络时总是失败,其它的子结点可以在后序慢慢添加。

组件安装

Web UI

安装参考http://kubernetes.io/docs/user-guide/ui/ ,一条Kubectl命令搞定

配置heapster,支持图形展示cpu、内存等数据
https://github.com/kubernetes/heapster/blob/master/docs/influxdb.md

Weave Scope

一个图形化的k8s所有资源的拓扑、pods依赖展现等

安装参考,很简单,参考https://www.weave.works/docs/scope/latest/installing/

常用操作

记住,有了Kubernetes就不要再想着直接操作Docker了,大多数操作基本都被封装在了Kubectl命令中了,Kubect的常用命令大家在网上搜索一下,这里就不一一列举了,只说几个非常有用的操作,

  • kubectl exec pod_id_xxx date  在PODS中运行命令
  • kubectl exec pod_id_xxx -it /bin/sh  进入PODS
  • kubectl delete -f xxx.yml  删除资源
  • kubectl apply -f xxx.yml  更新、修改资源,没有的话会创建,所以可以直接使用apply,如果失败尝试删除再create!
  • kubectl create -f xxx.yml  创建资源
  • kubectl get po --all-namespaces  所出所有pods资源

到此我们的基本条件都准备好了,下文将开始做运行测试,敬请期待。

Logo

开源、云原生的融合云平台

更多推荐