一个 Kubernetes 集群由分布式存储 etcd、控制节点 controller 以及服务节点 Node 组成。
控制节点主要负责整个集群的管理,比如容器的调度、维护资源的状态、自动扩展以及滚动更新等
服务节点是真正运行容器的主机,负责管理镜像和容器以及 cluster 内的服务发现和负载均衡
etcd 集群保存了整个集群的状态
详细的介绍请参考 Kubernetes 架构。
集群联邦(Federation)用于跨可用区的 Kubernetes 集群,需要配合云服务商(如 GCE、AWS)一起实现。
详细的介绍请参考 Federation。
可以参考 Kubernetes 部署指南 来部署一套 Kubernetes 集群。而对于初学者或者简单验证测试的用户,则可以使用以下几种更简单的方法。
创建 Kubernetes cluster(单机版)最简单的方法是 minikube:
$ minikube startStarting local Kubernetes cluster...Kubectl is now configured to use the cluster.$ kubectl cluster-infoKubernetes master is running at https://192.168.64.12:8443kubernetes-dashboard is running at https://192.168.64.12:8443/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboardTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Play with Kubernetes 提供了一个免费的 Kubernetes 体验环境,直接访问 < http://play-with-k8s.com > 就可以使用 kubeadm 来创建 Kubernetes 集群。注意,每次创建的集群最长可以使用 4 小时。
Play with Kubernetes 有个非常方便的功能:自动在页面上显示所有 NodePort 类型服务的端口,点击该端口即可访问对应的服务。
详细使用方法可以参考 Play-With-Kubernetes。
Katacoda playground也提供了一个免费的 2 节点 Kubernetes 体验环境,网络基于 WeaveNet,并且会自动部署整个集群。但要注意,刚打开 Katacoda playground 页面时集群有可能还没初始化完成,可以在 master 节点上运行 launch.sh
等待集群初始化完成。
部署并访问 kubernetes dashboard 的方法:
# 在 master node 上面运行kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yamlkubectl proxy --address='0.0.0.0' --port=8080 --accept-hosts='^*$'&
然后点击 Terminal Host 1 右边的➕,从弹出的菜单里选择 View HTTP port 8080 on Host 1,即可打开 Kubernetes 的 API 页面。在该网址后面增加 /ui
即可访问 dashboard。