K8s

Stella981
• 阅读 841

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

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

1,创建 Kubernetes 集群
(1)首先访问官网的在线教程:

在线教程地址:https://kubernetes.io/docs/tutorials/  

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

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

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

1

minikube start

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

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

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

1

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

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

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

1

curl host01:31490

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

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

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

1

kubectl get deployments

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

1

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

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

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

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

1

kubectl scale deployments/kubernetes-bootcamp --replicas=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。 

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

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

1

kubectl rollout undo deployments/kubernetes-bootcamp

原文出自:www.hangge.com  转载请保留原文链接:https://www.hangge.com/blog/cache/detail\_2426.html
————————————————
版权声明:本文为CSDN博主「zb313982521」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zb313982521/article/details/103672687

  • 点赞
  • 收藏
  • 分享
    • 文章举报

K8s K8s

varyall

发布了50 篇原创文章 · 获赞 351 · 访问量 186万+

他的留言板 关注

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这