Kubernetes中Pod使用方法
admin
2023-03-25 21:01:26
0

Pod是Kubernetes调度的最小单元。一个Pod可以包含一个或多个容器,因此它可以被看作是内部容器的逻辑宿主机。

资源限制

pod和container的资源请求和限制

#cpu上限
spec.containers[].resources.limits.cpu

#内存上限
spec.containers[].resources.limits.memory

#创建时分配的基本cpu资源
spec.containers[].resources.requests.cpu

#创建时分配的基本内存资源
spec.containers[].resources.requests.memory

示例演示(在master1端操作)

  • 创建pod2.yaml文件
vim pod2.yaml

apiVersion: v1
kind: Pod
metadata:
  name: frontend        
  #Pod资源的名称
spec:
  containers:
  - name: db        
  #容器1的名称
    image: mysql
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: "password"
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
  - name: wp        
  #容器2的名称
    image: wordpress
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
  • 创建资源
kubectl apply -f pod2.yaml
  • 查看资源详细信息
kubectl describe pod frontend
  • 查看对应节点上Pod资源的占用情况
kubectl describe nodes 192.168.142.130
  • 查看命名空间
kubectl get ns

重启策略

1:Always:当容器终止推出后,总是重启容器,默认策略

2:Onfailure:当容器异常退出(退出码为非0)时,重启容器

3:Never:当容器终止退出,从不重启资源

注意:k8s中不支持重启pod资源,只有删除重建

示例演示

  • 默认的重启策略是Always
kubectl edit deploy
#输入/restartPolicy查找
restartPolicy: Always       
#没有设定重启策略时默认为Always

#创建pod3.yaml文件
vim pod3.yaml

apiVersion: v1
kind: Pod
metadata:
  name: foo
spec:
  containers:
  - name: busybox
    image: busybox
    args:       
    #参数
    - /bin/sh   
    #在shell环境中
    - -c        
    #command命令
    - sleep 30; exit 3      
    #容器启动后休眠30s,异常退出返回状态码为非0值

#创建资源
kubectl apply -f pod3.yaml

kubectl get pods
#此时会出现Error报错,因刚刚设置的异常退出,一会再查看时RESTARTS重启值会变为1、
  • 添加重启策略Never
#修改pod3.yaml文件
vim pod3.yaml

apiVersion: v1
kind: Pod
metadata:
  name: foo
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 10              
    #修改休眠时间为10s
  restartPolicy: Never      
    #添加重启策略

#创建资源
kubectl apply -f pod3.yaml

健康检查,又称为探针(Probe)

  • 注意:规则可以同时定义
livenessProbe 如果检查失败,将杀死容器,根据Pod的restartPolicy来操作

ReadinessProbe 如果检查失败,kubernetes会把Pod从service endpoints后端节点中中剔除
  • Probe支持三种检查方法
httpGet 发送http请求,返回200-400范围状态码为成功

exec 执行Shell命令返回状态码是0为成功

tcpSocket 发起TCP Socket建立成功

示例演示

  • 创建资源
#创建pod4.yaml文件
vim pod4.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: liveness
  name: liveness-exec
spec:
  containers:
  - name: liveness
    image: busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy
    #创建一个空文件,休眠30s,删除这个空文件
    livenessProbe:
      exec:
      #探测健康
        command:
        #command命令
        - cat
        #执行查看命令
        - /tmp/healthy  
        #创建的空文件
      initialDelaySeconds: 5
      #容器创建完成5秒之后开始健康检查
      periodSeconds: 5  
      #检查的间隔频率为5秒
  • 刷新资源
#创建资源
kubectl apply -f pod4.yaml

kubectl get pods
#当中状态不断改变,就代表它正在不断的进行检查,然后不断的执行重启策略,其中的RESTARTS重启值也会随之增加

谢谢阅读!

相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...