为了账号安全,请及时绑定邮箱和手机立即绑定

大蕉说k8s(1)-quickstart No.181

标签:
Kubernetes

今天这篇文章是写给觉得k8s很困难的娃的,其实每一门我们已知的互联网技术背后底层原理都简单得不行,但是中间被封装拓展得很复杂,在用户侧又被封装成比较简单的样子。

也就是典型的  简单->复杂扩展->简单使用  这种趋势,目前几乎所有的技术都是这样的。

比如机器学习,底层的无非是  统计学(深度学习)+矩阵计算,中间就是各种框架各种算法组合各种策略,顶层就是一个 train+predict。

比如大数据,底层原理无非是  分布式原理,中间就是 Flink、Spark、Hive 等等,顶层就是一个 SQL 的事情。

比如 Java,底层原理无非是虚拟机+字节码,中间 Spring 家族各种框架,顶层其实一个SpringApplication.run() 搞定。

比如容器,底层原理无非就是 linux 的 namespace + cgroups 资源隔离,中间有非常多的容器技术,比如 Docker、CoreOS rkt、Containerd 等等,上层就是简单的容器定义文件和 run 命令。

底层很简单,中间很复杂,顶层很简单,这也是很多技术的真实面貌。

为什么我们要从顶层说起,因为顶层是距离我们最近的,也是我们克服对技术复杂性焦虑的最好方法。我们都知道著名的 "Hello,World! ",就是用来给我们打开新世界的大门的一把钥匙,每一门技术都绕不开一个 quickstart 。

寻找一台 Mac 或者  Windows 电脑,下载Docker 桌面版,你问我为什么要下载桌面版?因为安装太复杂了,我怕你自己搞不定嗝屁了,把 Docker 和 kubernetes 启动起来就好了。

下载地址在这里 

https://www.docker.com/products/docker-desktop 

下载完配置一下镜像地址,然后在 kubernetes 上把 k8s 打开就好了(因为k8s 镜像默认需要从外部地址下载,不配置镜像仓库的话,可能一直在 starting),其他的错误自行搞定,我这里就默认你安装好了,这是我目前见过最简便的安装方案了。

https://img1.sycdn.imooc.com/5e634be800014a6a10800636.jpg

https://img1.sycdn.imooc.com/5e634be900014e3210800636.jpg

等到这里也变绿就搞定了了安装这一步,如果一直不变绿要么就是你网速不好,要么就是你网络有问题。核心错误就是镜像下载不下来,自己想办法搞定。

现在我们来启动一个 busybox 的官方实例,启动一个 busybox 容器。下面这段代码的含义呢,就是创建一个 yaml 文件,定义这个 busy 容器背后 POD 的定义。replicas 为 1 ,代表目标副本数为 1 个,也就是会创建一个 POD。template 里面是容器模板的定义,每一个 POD 里的每一个容器都会按照这个模板创建出一模一样的。比如其中一个 container 名字叫 busybox,docker 镜像为 busybox:latest。k8s 会尝试下载 busybox 镜像的最新的版本,镜像下载成功后,会启动一个 POD。

(BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件,是一个微型linux操作系统)

cat >> busybox.yaml << EOFkind: Deploymentmetadata:  name: busyboxspec:  replicas: 1  template:    metadata:      labels:        app: busybox    spec:      restartPolicy: Always      containers:      - name: busybox        command:         - sleep         - "3600"        image: busybox:latestEOF

k8s 的标准提交手段,apply 一个 yaml 文件,方式 -f 表示按文件的形式,nginx.yaml 就是我们需要提交新建或者更新的部署定义文件。

kubectl apply -f busybox.yaml

我们怎么知道我们的 POD 现在是什么情况呢?还是一样使用标准的 k8s 查询方案,获取 default 命名空间下的 POD。k8s 中所有的操作,如果没有指定命名空间的话,都会默认在 default 默认命名空间下执行。

kubectl get pods
NAME                       READY   STATUS    RESTARTS   AGEbusybox-868975484c-vss28   1/1     Running   0          45s

我们可以看到,容器正在创建中,如果一直没有创建成功,一样还是要查看一下网络是不是有问题,镜像没有下载下来,查看的命令是。

kubectl describe pod  busybox-868975484c-vss28

如果已经 Running 了,说明容器已经创建成功了,这时候我们可能希望登入到容器里看一眼,可以使用 exec 命令,登入到容器里,就跟一台普通的 linux 机器是一样的啦,自己玩耍吧。

kubectl exec -it busybox-868975484c-vss28 -- /bin/sh

好嘞,回顾一下,我们今天干了啥。

1、安装 Docker 和 kubenertes。

2、定义了一个 POD,并将它启动起来。

3、登入到 POD 的容器里。

就酱,蟹蟹~


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消