当前位置: > > > K8s - 免费的Kubernetes在线实验平台介绍1(Play with Kubernetes)

K8s - 免费的Kubernetes在线实验平台介绍1(Play with Kubernetes)

    kubernetes(简称 K8s)是一个开源的,用于管理云平台中多个主机上的容器化的应用。它的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes 提供了应用部署,规划,更新,维护的一种机制。
   不过在我们日常学习中,要找到这么多台服务器来搭建 Kubernetes 集群并不如容易。好在 Docker 为我们提供一个的实验网站 Play with KubernetesPWK),我们在上面花个几分钟就可以让一个 Kubernetes 集群的试验环境跑起来,并在上面进行学习和测试。

1,Play with Kubernetes 介绍

(1)Play with Kubernetes 一个提供了在浏览器中使用免费 CentOS Linux 虚拟机的体验平台,其内部实际上是 Docker-in-DockerDinD)技术模拟了多虚拟机/PC 的效果。
(2)Play with Kubernetes 平台有如下几个特色:
  • 允许我们使用 githubdockerhub 账号登录
  • 在登录后会开始倒计时,让我们有 4 小时的时间去实践
  • K8s 环境使用 kubeadm 来部署(使用用 weave 网络)
  • 平台共提供 5 centos7 设备供我们使用(docker 版本为 17.09.0-ce

2,搭建 Kubernetes 集群

(1)首先访问其网站,并使用 githubdockerhub 账号进行登录。

(2)登录后点击页面上的 Start 按钮,我们便拥有一个自己的实验室环境。

(3)单击左侧的“Add New Instance” 来创建第一个 Kubernetes 集群节点。它会自动将其命名为“node1”,这个将作为我们群集的主节点。

(4)由于刚创建的主节点 IP192.168.0.13,因此我们执行如下命令进行初始化:
kubeadm init --apiserver-advertise-address 192.168.0.13 --pod-network-cidr=10.244.0.0/16

(5)初始化完毕完成之后,界面上会显示 kubeadm join 命令,这个用于后续 node 节点加入集群使用,需要牢记。

(6)接着还需要执行如下命令安装 Pod 网络(这里我们使用 flannel),否则 Pod 之间无法通信。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

(7)最后我们执行 kubectl get nodes 查看节点状态,可以看到目前只有一个 Master 节点。

(8)我们单击左侧的“Add New Instance”按钮继续创建 4 个节点作为 node 节点

(9)这 4 个节点都执行类似如下的 kubeadm join 命令加入集群(即之前 master 节点初始化完成后红框部分内容)
kubeadm join 192.168.0.13:6443 --token opip9p.rh35kkvqzwjizely --discovery-token-ca-cert-hash sha256:9252e13d2ffd3569c40b02c477f59038fac39aade9e99f282a333c0f8c5d7b22

(10)最后我们在主节点执行 kubectl get nodes 查看节点状态,可以看到一个包含有 5 个节点集群已经部署成功了。

3,Kubernetes 集群的使用

(1)执行如下命令通过 yaml 文件部署运行 nginx 服务(该 yaml 文件中指明了副本数量为 3
kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx-app.yaml

(2)执行如下命令查看副本(pod)情况,可以看到确实有三个副本分别部署在三个 node 节点上。
kubectl get pods -o wide

(3)执行如下命令则可以查看 services 状态。
kubectl get service

(4)当部署完毕后,页面上方会出现一个带有数字的蓝色按钮,按钮数字即为 Services 随机配置的外部 port。点击蓝色按钮,即可看到 Nginx 服务的欢迎页面。(但我测试时一直没有出现,不清楚是什么原因)
评论0