K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)

作者: hangge 发布时间: 2019-09-05 浏览: 2542 次 编辑

    kubernetes(简称 K8s)是一个开源的,用于管理云平台中多个主机上的容器化的应用。 在之前的文章中,我介绍如何通过 Docker 为我们提供的实验网站 Play with KubernetesPWK)来搭建 Kubernetes 集群(点击查看)。

    但如果每次学习时都需要重新搭建一个 K8s 集群还是很麻烦。好在 Kubernetes 官网已经为我们准备好了现成的最小可用系统。我们通过 Web 浏览器就可以直接使用一个预先部署好的 Kubernetes集群,快速体验 Kubernetes 的功能和应用场景。

1,创建 Kubernetes 集群

(1)首先访问官网的在线教程:

(2)点击左侧菜单的“Learn Kubernetes Basics” -> “Create a Cluster” -> “Interactive Tutorial - Creating a Cluster

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(3)点击打开页面中的“START SCENARIO”按钮即可打开 Terminal(命令终端窗口)

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(4)在终端中执行如下命令即可开始初始化集群:

1
minikube start


(5)可以看到这样就创建好了一个单节点的 kubernetes 集群。

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


2,部署应用

(1)我们执行如下命令部署一个名为 kubernetes-bootcamp 的容器:

1
kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080


(2)然后执行如下命令可以查看当前的 Pod

Pod 概念介绍:

  • Pod 是容器的集合,它是 Kubernetes 调度的最小单位,同一个 Pod 中的容器始终被一起调度。

  • 通常我们会将紧密相关的容器放到同一个 Pod 中,同一个 Pod 中的所有容器共享 IP 地址和 Port 空间,也就是说它们在一个 network namespace 中。

1
kubectl get pods

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


3,访问应用

(1)默认情况下,所有 Pod 只能在集群内部访问。为了能够从外部访问应用,我们执行如下代码将容器的 8080 端口映射到节点的端口。

1
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080


(2)执行 kubectl get services 命令可以看到 8080 端口已经映射到 host01 的 31490 端口(端口号是随机分配的)

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(3)我们可以执行如下命令访问应用:

1
curl host01:31490

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(4)当然也可以通过浏览器访问,点击终端上方的加号,在弹出菜单中选择“View HTTP port 30000 on Host 1

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(5)将弹出页的 url 中端口部分改成 31490 回车,即可看到结果。

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)

4,Scale 应用

(1)默认情况下应用只会运行一个副本,我们可以执行如下命令查看副本数。

1
kubectl get deployments

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(2)执行如下命令将副本数增加到 3 个:

1
kubectl scale deployments/kubernetes-bootcamp --replicas=3

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(3)通过 kubectl get pods 可以看到当前的 Pod 也增加到了 个:

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(4)通过 curl 访问应用,可以看到每次请求发送到不同的 Pod个副本轮训处理,这样就实现了负载均衡。

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(5)要 scale down 也很方便,下面将删除一个副本(副本数变为 2

1
kubectl scale deployments/kubernetes-bootcamp --replicas=2

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


5,滚动更新

(1)当前使用的 image 版本是 v1,执行如下命令将其升级到 v2

1
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2


(2)通过 kubectl get pods 可以观察滚动更新的过程,可以看到 v1 的 Pod 被逐个删除,同时启动了新的 v2 版本的 Pod。 

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(3)测试下现在确实变成了 v2 版了。

原文:K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)


(4)如果想要回退到 v1 版本,执行下面命令进行回滚即可。

1
kubectl rollout undo deployments/kubernetes-bootcamp


原文链接:https://www.hangge.com/blog/cache/detail_2426.html