栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

K8S之pod

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

K8S之pod

pod定义

在Kubernetes中,管理、创建、计划的最小单元是Pod。一个Pod是一个容器环境下的“逻辑主机”,它可能包含一个或者多个紧密相连的应用,也就是一个pod可以封装一个或者多个容器。如果把pod看作一个虚拟机,则每个容器相当于运行在虚拟机的进程。

Pod 是有IP地址的,每个 pod 都被分配唯一的 IP 地址,它们的IP地址是依靠网络插件分配的。Pod的中的容器均使用相同的网络命名空间及端口,并且可以通过localhost发现并沟通其他容器。


自主式pod

自主式pod直接使用pod类型创建pod,下面我们尝试创建一个自主式pod。

首先创建一个tomcat.yaml文件

apiVersion: v1
kind: Pod
metadata:
  name: tomcat-test
  labels: 
    app: tomcat
spec:
  containers:
  - name: tomcat
    ports:
    - containerPort: 8080
image: tomcat

使用如下指令创建pod

kubectl apply -f tomcat.yaml

查看pod是否建立成功 

kubectl get pods -o wide -l app=tomcat

查看pod具体信息

kubectl describe pod tomcat-test

 一般来说我们并不使用自主式pod,因为如果我们由于意外不小心把pod删除了,就是真的删除了,是不会自动创建一个新的pod的,这种情况会产生很大的风险,所以我们一般采用的都是控制器管理的pod。

删除pod

kubectl delete pods tomcat-test

pod被彻底删除


控制器管理的pod 

K8S常见的有五种控制器:Deployment、StatefulSet、DaemonSet、Job、CronJob,分别对应处理无状态应用、有状态应用、守护型应用和批处理应用。

下面创建通过Deployment管理的Pod。

首先创建一个nginx.yaml文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx-deploy
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

创建pod

kubectl apply -f nginx.yaml

查看是否创建成功

kubectl get deploy -l app=nginx-deploy

查看pod

kubectl get pods -o wide -l app=nginx

尝试删除pod

kubectl delete pods nginx-deployment-74d589986c-2jpzl

 发现重新创建了一个pod

kubectl get pods -o wide -l app=nginx

使用控制器的pod直接删除是会自动创建的,所以如果要删除的话需要删除deployment

kubectl delete deployment nginx-deployment

 查看是否删除

删除成功

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881608.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号