k8s教程(pod篇)-定义与基本用法

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: k8s教程(pod篇)-定义与基本用法

01 pod定义

pod定义的完整内容如下:

pod各属性的说明:

02 pod基本用法

Pod 可以由 1 个或多个容器组合而成,如下名为 frontendPod 只由一个容器组成:

这个 frontend Pod 在成功启动之后,将启动 1 个 Docker 容器。

另一种场景是,当 frontend redis 两个容器应用为紧耦合的关系,并组合成一个整体对外提供服务时,应将这两个容器打包为一个 Pod,如图 所示:

配置文件 frontend-localredis-pod.yaml 的内容如下:

属于同一个 Pod 的多个容器应用之间相互访问时仅需通过localhost就可以通信,使得这一组容器被“绑定”在一个环境中。

运行 kubectl create 命令创建该 Pod:

查看已经创建的pod

可以看到READY信息为2/2,表示Pod中的两个容器都成功运行了。查看这个 Pod 的详细信息,可以看到两个容器的定义及创建的过程(Event事件信息):

03 静态pod

静态 Pod 是由 kubelet 进行管理的仅存在于特定 Node 上的 Pod。它们不能通过API Server 进行管理,无法与 ReplicationControllerDeployment 或者 DaemonSet 进行关联,并且 kubelet 无法对它们进行健康检查。静态 Pod 总是由kubelet创建的,并且总在kubelet所在的 Node 上运行。

创建静态 Pod 有两种方式:配置文件方式和 HTTP 方式。

3.1 配置文件方式

首先,需要设置 kubelet 的启动参数“-pod-manifest--path”(或者在 kubelet 配置文件中设置 staticPodPath,这也是新版本推荐的设置方式,-pod-manifest- path 参数将被逐渐弃用),指定 kubelet 需要监控的配置文件所在的目录,kubelet 会定期扫描该目录,并根据该目录下的.yaml json文件进行创建操作。

假设配置目录为/etc/kubelet.d/,配置启动参数为-pod-manifest-path=/etc/kubelet.d/,然后重启kubelet服务。

/etc/kubelet.d目录下放入static-web.yaml 文件,内容如下:

等待一会儿,查看本机中已经启动的容器:

可以看到一个 Nginx 容器已经被 kubelet成功创建了出来。到 Master 上查看 Pod 列表,可以看到这个 static pod:

由于静态 Pod 无法通过 API Server 直接管理,所以在 Master上尝试删除这个 Pod 时,会使其变成 Pending 状态,且不会被删除。

删除该 Pod 的操作只能是到其所在 Node 上将其定义文件 static-web.yaml /etc/kubelet.d目录下删除。

#rm /etc/kubelet.d/static-web.yaml
# docker ps
//无容器运行

3.2 HTTP 方式

通过设置 kubelet 的启动参数“-manifest--url”,kubelet将会定期从该 URL 地址下载 Pod 的定义文件,并以yamljson 文件的格式进行解析,然后创建 Pod,其实现方式与配置文件方式是一致的。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
JSON Kubernetes Shell
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
|
2月前
|
Kubernetes Shell Perl
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
【Azure K8S|AKS】进入AKS的POD中查看文件,例如PVC Volume Mounts使用情况
|
8天前
|
Kubernetes Docker Python
dockercompose与k8s的pod文件的爱恨情仇
dockercompose与k8s的pod文件的爱恨情仇
|
2月前
|
Kubernetes Docker Perl
在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
在K8S中,如果是因为开发写的镜像问题导致pod起不来该怎么排查?
|
2月前
|
Kubernetes 安全 Docker
在K8S中,在服务上线的时候Pod起不来怎么进行排查?
在K8S中,在服务上线的时候Pod起不来怎么进行排查?
|
2天前
|
Kubernetes Cloud Native Ubuntu
云原生之旅:Kubernetes集群搭建与应用部署
【8月更文挑战第65天】本文将带你进入云原生的世界,通过一步步指导如何在本地环境中搭建Kubernetes集群,并部署一个简单的应用。我们将使用Minikube和Docker作为工具,探索云原生技术的魅力所在。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和实践技巧。
|
6天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
|
1月前
|
存储 Kubernetes 负载均衡
CentOS 7.9二进制部署K8S 1.28.3+集群实战
本文详细介绍了在CentOS 7.9上通过二进制方式部署Kubernetes 1.28.3+集群的全过程,包括环境准备、组件安装、证书生成、高可用配置以及网络插件部署等关键步骤。
181 3
CentOS 7.9二进制部署K8S 1.28.3+集群实战
|
1月前
|
Kubernetes 负载均衡 前端开发
二进制部署Kubernetes 1.23.15版本高可用集群实战
使用二进制文件部署Kubernetes 1.23.15版本高可用集群的详细教程,涵盖了从环境准备到网络插件部署的完整流程。
54 2
二进制部署Kubernetes 1.23.15版本高可用集群实战
|
1月前
|
存储 Kubernetes 测试技术
k8s使用pvc,pv,sc关联ceph集群
文章介绍了如何在Kubernetes中使用PersistentVolumeClaim (PVC)、PersistentVolume (PV) 和StorageClass (SC) 来关联Ceph集群,包括创建Ceph镜像、配置访问密钥、删除默认存储类、编写和应用资源清单、创建资源以及进行访问测试的步骤。同时,还提供了如何使用RBD动态存储类来关联Ceph集群的指南。
50 7
下一篇
无影云桌面