Docker系列之快速体验 k8s 核心功能

6 篇文章 0 订阅
2 篇文章 0 订阅

本篇文章将带领大家快速体验 k8s 的核心功能:应用部署、访问应用、Scale Up/Down 以及滚动更新。

应用部署

首先我们来说说部署应用,我们在上一篇提到的 kubernetes.io 开发的一个交互式教程中执行下面这个命令:

上一篇教程地址点击此处

命令通过 kubectl run 部署了一个应用,命名为 kubernetes-bootcamp,Docker 镜像可以通过 --image 指定,--port 设置了应用对外服务的端口号

kubectl run kubernetes-bootcamp \
      --image=docker.io/jocatalin/kubernetes-bootcamp:v1 \
      --port=8080

执行命令结果如下图:
在这里插入图片描述
从执行的结果 deployment.apps/kubernetes-bootcamp created 中可以看出应用已经被成功创建,deployment 是 Kubernetes 的术语,可以理解为应用的意思。

Kubernetes 还有一个重要的术语 PodPod 是容器的集合,我们通常会将紧密相关的一组容器放到一个 Pod 中,在同一个 Pod 中,所有容器共享 IP 地址和 Port 空间,也就是说它们在一个 network namespace 中。

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

运行 kubectl get pods 查看当前的 Pod,下图的kubernetes-bootcamp-56cdd766d-cnnjs就是应用的 Pod
在这里插入图片描述

访问应用

默认情况下,所有 Pod 只能在集群内部访问。对于上面的例子,要访问应用只能直接访问容器的 8080 端口。为了能够从外部直接访问应用,我们需要将容器的 8080 端口映射到节点的端口。

我们执行如下这个命令:

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

执行结果如下图:
在这里插入图片描述
执行命令 kubectl get services 可以查看应用被映射到节点的哪个端口
在这里插入图片描述
由上图可以知道 kubernetes-bootcamp8080 端口已经映射到 minikube32405 端口,端口号是随机分配的,你们的端口号会跟我的不一致,我们可以执行如下命令来访问应用:

curl minikube:32405

在这里插入图片描述

Scale 应用

默认情况下应用只会运行一个副本,可以通过 kubectl get deployments查看副本数。
在这里插入图片描述
执行如下命令将副本数增加到 3 个:

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

如下图所示,成功增加了3个副本数
在这里插入图片描述
在这里插入图片描述
通过 kubectl get pods 也可以看到当前 Pod 也增加到 3 个
在这里插入图片描述
通过 curl 访问应用,可以看到每次请求发送到不同的 Pod,三个副本轮询处理,这样就实现了负载均衡,如下图所示:
在这里插入图片描述
scale down 也很方便,执行命令:

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

出现如下图的 deployment.extensions/kubernetes-bootcamp scaled 就说明 scale down成功了
在这里插入图片描述
输入 kubectl get deployments 命令,可以看到还剩下2个副本数
在这里插入图片描述
输入 kubectl get pods 命令,可以知道其中一个副本被删除了
在这里插入图片描述

滚动更新

当前应用使用的 image 版本为 v1,执行如下命令将其升级到 v2

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

出现如下图则说明升级成功
在这里插入图片描述
通过 kubectl get pods 可以观察滚动更新的过程:v1 的 Pod 被逐个删除,同时启动了新的 v2 Pod。我这截图太慢看不出来。
在这里插入图片描述
下图是别人成功截取的
在这里插入图片描述
更新完成后访问新版本应用,使用 curl minikube:32405 命令访问,如下图所示:
在这里插入图片描述
如果要回退到 v1 版本,可以执行 kubectl rollout undo 命令:

kubectl rollout undo deployments/kubernetes-bootcamp

所下图所示:
在这里插入图片描述
使用curl minikube:32405来验证一下版本是否已经回退到 v1版本,如下图可以知道版本已经成功回退了。
在这里插入图片描述
好咯,到了这里,我们已经通过官网的交互式教程快速体验了 Kubernetes 的功能和使用方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值