当前位置: > > > K8s - 免费的Kubernetes在线实验平台介绍2(官网提供的在线系统)

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

    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

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

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

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

2,部署应用

(1)我们执行如下命令部署一个名为 kubernetes-bootcamp 的容器:
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 中。
kubectl get pods

3,访问应用

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

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

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

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

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

4,Scale 应用

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

(2)执行如下命令将副本数增加到 3 个:
kubectl scale deployments/kubernetes-bootcamp --replicas=3

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

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

(5)要 scale down 也很方便,下面将删除一个副本(副本数变为 2
kubectl scale deployments/kubernetes-bootcamp --replicas=2

5,滚动更新

(1)当前使用的 image 版本是 v1,执行如下命令将其升级到 v2
kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2

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

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

(4)如果想要回退到 v1 版本,执行下面命令进行回滚即可。
kubectl rollout undo deployments/kubernetes-bootcamp
评论0