kubernetes基础(二)

本文介绍了如何在Kubernetes中使用YAML文件创建和管理Pod,重点讲解了Deployment的概念,包括如何定义Pod副本数、容器镜像、端口等关键信息,以及如何通过LabelSelector进行资源管理。此外,还展示了如何更新Pod、检查Pod状态以及与Pod交互的方法。
摘要由CSDN通过智能技术生成

大家好,上篇文章咱们进行了对pod、node、namespace的基础认知和操作,相信大家都已经知道怎么在工作中使用这些命令,那么今天咱们继续学习kubernets知识

操作了pod之后,我想大家一定会有一些疑问,我该怎能才能创建属于自己的pod,那么这节咱们就一起创建第一个pod

Kubernetes 跟 Docker 等很多项目最大的不同,就在于它不推荐你使用命令行的方式直接运行容器(虽然 Kubernetes 项目也支持这种方式,比如:kubectl run),而是希望你用 YAML 文件的方式,即:把容器的定义、参数、配置,统统记录在一个 YAML 文件中,然后用这样一句指令把它运行起来:

kubectl create -f 我的配置文件

在这里插入图片描述

这么做最直接的好处是,你会有一个文件能记录下 Kubernetes 到底“run”了什么。比如下面这个例子:

像这样的一个 YAML 文件,对应到 Kubernetes 中,就是一个 API Object(API 对象)。当你为这个对象的各个字段填好值并提交给 Kubernetes 之后,Kubernetes 就会负责创建出这些对象所定义的容器或者其他类型的 API 资源。

kubectl api-versions

这个 YAML 文件中的 Kind 字段,指定了这个 API 对象的类型(Type),是一个 Deployment。

Deployment,是一个定义多副本应用(即多个副本 Pod)的对象,Deployment 还负责在 Pod 定义发生变化时,对每个副本进行滚动更新(Rolling Update)

在上面这个 YAML 文件中,我给它定义的 Pod 副本个数 (spec.replicas) 是:1。

我定义了一个 Pod 模版(spec.template),这个模版描述了我想要创建的 Pod 的细节。在上面的例子里,这个 Pod 里只有一个容器,这个容器的镜像(spec.containers.image)是 nginx:1.7.9,这个容器监听端口(containerPort)是 80

Labels 就是一组 key-value 格式的标签。而像 Deployment 这样的控制器对象,就可以通过这个 Labels 字段从 Kubernetes 中过滤出它所关心的被控制对象

在上面这个 YAML 文件中,Deployment 会把所有正在运行的、携带“app: nginx”标签的 Pod 识别为被管理的对象,并确保这些 Pod 的总数严格等于1个

而这个过滤规则的定义,是在 Deployment 的“spec.selector.matchLabels”字段。我们一般称之为:Label Selector

一个 Kubernetes 的 API 对象的定义,大多可以分为 Metadata 和 Spec 两个部分。前者存放的是这个对象的元数据,对所有 API 对象来说,这一部分的字段和格式基本上是一样的;而后者存放的,则是属于这个对象独有的定义,用来描述它所要表达的功能

创建一个deployment

kubectl create -f nginx_deployment.yaml

在这里插入图片描述

查看创建的pod

kubectl get pods -l app=nginx

在这里插入图片描述

查看创建的nginx pod描述

kubectl describe pod nginx-deployment-5754944d6c-fmdhr

在这里插入图片描述

更新pod,比如咱们要更新nginx到1.8

修改文件中

Image: 1.8

Kubectl apply -f nginx_deployment.yaml

查看nginx版本,已经变更为1.8版本

kubectl describe pod nginx-deployment-6f655f5d99-46fxq

现在咱们进入pod,写些自己的内容

kubectl exec -it nginx-deployment-5754944d6c-6k8qc /bin/bash
ls /usr/share/nginx/html
curl 172.20.0.143

在这里插入图片描述

查看到服务发布内容变成hello~

开放端口,查看

kubectl expose deployment nginx-deployment --type=NodePort -l app=nginx

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值