一些基础知识
Kubernetes本质上通过协调一个集群(Cluster)中的计算机,使他们构成一个整体。使用kubernetes,容器化的应用部署下去时无需再考虑实际要部署再哪台机器上,kubernetes作为调度者,会自动以高效的方式选择宿主机位置。
Kubernetes cluster有两部分组成:
1.管理和调度资源的Master;2.实际承担容器运行任务的节点(Nodes). 他们之间的关系如下图所示。
其中节点 (nodes) 可以是物理机,也可以虚拟机,但是都必须安装有Kubelet,kubelet是节点和master之间通信的代理。除此之外,既然Kubernetes只是一个调度容器的工具,并不负责运行容器镜像,所以node上还需要有运行容器的环境,如Docker 或者 rkt.
实际在生产环节中使用kubernetes时,要有3个以上的node才有意义。道理很简单,要是只有一两个node,直接手动选择一个机器运行容器就行了,何必多此一举用kubernetes呢。但是学习和了解kubernetss时无需真的部署3个节点,布一个节点和一个master就足够了。
部署和启动minikube
初次接触kubernetss,利用Minikube可以轻松一键搭建一个包括1节点的kubernete集群,以供学习和熟悉k8s. Minikube能够一键安装kubernetes集群的原理是调用宿主机上的虚拟机部署node,Minikube支持linux,Mac,Win,此外还要安装好虚拟机环境。本地的搭建过程可见上一篇博文。但由于国情特殊,它需要去不存在的网站上下载额外的资源,所以搭建起来其实并不容易。要是网络通畅,可以试一下。
好在kubernetes网站上提供了一个可以在浏览器中操作的虚拟终端 https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive ,minikube已经安装好了,不用在本地安装任何程序,用浏览器就可以直接命令,体验开启、关闭、监控、删除等操作。
打开网页,欣然接收k8s训练营的欢迎,本教程目标是用minikube体验k8s.
启动minikube
1.跟着提示,启动minikube集群
Minikube start
2.通过Kuberctl管理集群。
Kuberctl是kubernete的管理界面
输入
sudo kubectl cluster-info
查看目前的集群的master地址。
Kubectl和minikube是完全不搭界的两个东西,但之所以kuberctl现在知道集群的master地址,是因为minikube在启动集群时把集群信息写到了 ~/.kube/config 文件内。Kubectl读取了这里的内容才知道minikube刚才建立了一个节点并告知了master的地址,kubectl检查后发现确实是可以连通这个地址。我们可以查看 ~/.kube/config的内容。
如果把这个config文件删掉,再运行 kubectl cluster-info, 就不知道master地址了呵呵。
把配置文件改回来,用kubectl get node查看集群中的节点信息。不出所料,Minikube搭起来的集群中只有一个节点。
Dashboard
这时可以用minikube的dashboard在浏览器中查看图像化的状态信息。
输入命令
minikube dashboard –url
,返回仪表盘的地址,
用浏览器访问返回的地址就可以看到了
使用Heapster插件查看集群状态
Minikube中自带了一些插件,可以用
minikube addons list
查看插件启用状态.
我们用
minikube addons enable heapster
命令启用heapster插件,这是一个图形化界面的插件,查看界面的web地址
Minikube addons open heapster –url
用浏览器打开,可以看到 cpu和rom图表。
Ref.
https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/
https://kubernetes.io/docs/tutorials/hello-minikube/#create-your-node-js-application