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

 查看是否删除

删除成功

 

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值