K8S 集群核心概念 pod_Pod 介绍及创建 | 学习笔记

简介: 快速学习 K8S 集群核心概念 pod_Pod 介绍及创建

开发者学堂课程【Kubernetes 极速入门:K8S 集群核心概念 pod_Pod 介绍及创建】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/658/detail/10910


K8S 集群核心概念 pod_Pod 介绍及创建


内容介绍:

一、场景

二、学习目标

三、学习步骤

四、课程内容

 

一、场景

通过前面课程学习,已经掌握了 k8s 集群中 NameSpace 操作,那么如果想在 k8s 集群中运行应用程序,应该使用什么资源对象呢

?由于 k8s 集群中是不能直接运行容器的, k8s 集群中最小调度单元为 Pod,因此要使用 Pod 来运行应用程序。

 

二、学习目标

1.了解 Pod 概念

2.了解查看 Pod 方法

3.了解创建 Pod 方法

4.了解 Pod 访问方法

5.了解删除 Pod 方法

 

三、学习步骤

1.Pod 介绍

2.查看 Pod

3.创建 Pod

4.Pod 访问

5.删除 Pod

 

四、课程内容

1.Pod 介绍

举个例子,拿豌豆荚与豌豆粒来说,在 k8s 集群来说,能够调度的最小管理单元是豌豆荚,即为 Pod,豌豆荚中的豌豆粒就相当于容器。

●Pod 是 kubernetes 集群能够调度的最小单元

●Pod 是容器的封装

2.查看 Pod

命令及输出

查看 defau1t 命名空间中的Pod(默认是 default 中的 pod)

[root@master1 ~]# kubectl get pod

NO resources found.

[root@master1 ~]# kubect1 get pods

NO resources found.

[root@master1 ~]# kubect1 get pods --namespace defau1t(指定查看)

NO resources found.

[root@master1 ~]# kubect1 get pod --namespace default

NO resources found.

实际操作:

[ root@master1 yamldir]#kubectl get pod

No resources found in"default namespace.

You have new mail in ivar / spool/mail/ root

[ root@master1 yamldir]# kubectl get pod

No resources found in default namespace.

[ root@master1 yamldir]#kubectl get pods

No resources found in default namespace.

如果指定命令空间,先查看一下命名空间

[ root@master1 yamldir]#kubectl get namespace

NAME              STATUS           AGE

Default             Active            16h

kube-node -lease     Active            16h

kube - public        Active             16h

kube-system        Active             16h

[root@master1 yamldir]# kubectl get pods --namespace default

No resources found in default namespace.

如果想要节省时间,可以简化 namespace 为 n

[ root@master1 yamldir]#kubectl get pods -n default

No resources found in default namespace.

可以通过 kube-system 这个命令空间去看哪些命令空间中有相应的 pod

[ root@master1 yamldir]# kubectl get pod -n kube-system

3.创建 Pod

由于网络原因,建议提前准备好容器镜像。本次使用 nginx:latest 容器镜像。

主要在 worker1 和 worker2之中下载即可,master1默认情况下是不允许把用户作运行 pod 调动过来的,所以 master1不用运行。

具体操作:

[ root@worker1 ~]#docker pull nginx : latest

latest: Pulling from library /nginx

bc51dd8edc1b: Downloading 277.6kB/27.09MB

66ba67045f57 : Downloading244.9kB/23.88MB

bf317aal0aa5 : Download complete

编写用于创建 Pod 资源清单文件(示例文件 cat 02-create-pod.yaml)

[root@master1 yamldir]# cat 02-create-pod.yaml

apiversion: v1(表示访问集群使用的API)

kind: Pod(类型)

metadata:

name: pod1(pod的名字)

spec:(对pod的期望)

containers:(容器列表)

- name : ngninx-pod(容器的名字)

image: nginx : latest

ports:

- name: nginxport(容器端口的名字)

containerPort: 80(容器所对应的端口)

对编写用于创建Pod资源清单文件的具体演示:

[ root@master1 yamldir]#ls

01-create-ns.yaml

[ root@masteri yamldir]# pwd

/ root/yamldir

[ root@master1 yamldir]# vim o2-create-pod . yaml

apiversion : v1

kind: Pod

metadata:

name : pod1

spec :

containers :

- name: nginx-container

image: nginx :latest

imagePuliPolicy: IfNotPresent

ports :

- name : nginxport

containerPort : 80

4.应用用于创建 Pod 资源清单文件

命令

[rootemaster1 yam1dir]# kubect1 app1y -f 02-create-pod .yam1

输出

pod/pod1 created

具体操作:

[ root@master1 yamldir]# kubectl apply -f 02-create-pod .yaml

pod/ pod1 created

5.验证 Pod 是否被创建

命令

查看已创建 pod

[rootemaster1 yam1dir]# kubect1 get pods

输出

NAME   READY   STATUS    RESTARTS    AGE

pod1     1/1     Running       0        88s

命令

通过指定默认命名空间查看已创建 pod

[root@master1 yam1dir]# kubect1 get pods -n default

输出

NAME    READY    STATUS    RESTARTS    AGE

pod1      1/1     Running       0       2m43s

具体操作:

[ root@master1 yamldir]#kubectl get pods

NAME   READY   STATUS    RESTARTS   AGE

pod1      1/1    Running      0        31s

命令

查看 pod 更加详细信息

[rootemaster1 yam1dir]# kubect1 get pods -o wide

输出 

NAME   READY   STATUS   RESTARTS    AGE        IP         NODE

NOMINATED NODE   READINESS GAT

pod1     1/1     Running    0         9m5s   172.16,1.2     node2

<none>                 <none>

查看 Pod 在哪个主机之中被创建

[ root@master1 yamldir]#  kubectl  get  pods -o  wide(查看更加广泛的信息)

NAME  READY  STATUS  RESTARTS  AGE IP NODE  NOMINATED  NODE READINESS GATES

Pod    11/1   Running   0        94s   172.16 . 189.65     worker2  <none>  <none>

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
11天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
67 24
|
13天前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
82 6
|
12天前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
1月前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
72 1
|
2月前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
2月前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。
|
2月前
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
204 4
|
1月前
|
存储 Kubernetes 调度
K8S中的核心概念
【10月更文挑战第26天】云原生环境下的安全问题易被忽视,导致潜在风险。应用层渗透测试和漏洞扫描是检测安全的关键,尤其是对于CVE漏洞的修复。然而,常见误解认为安全由外部防护处理且不易引入问题。
|
2月前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
943 1
|
2月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
93 3