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

k8s-----资源清单

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

k8s-----资源清单

资源清单
  • 资源清单格式
  • 常见参数
  • 自主式Pod资源清单
  • 策略使用案例
    • ImagePullPloicy镜像拉取策略
    • 容器端口映射
    • 资源限制
    • 强制调度
    • 主机网络模式
    • restartPolicy重启策略

资源清单格式

格式如下:

apiVersion: group/version  //指明api资源属于哪个群组和版本,同一个组可以有多个版本
        $ kubectl api-versions		//查询命令

kind: 		//标记创建的资源类型,k8s主要支持以下资源类别
       Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob
    
metadata:	//元数据
        name:	//对像名称
        namespace:	//对象属于哪个命名空间
        labels:	//指定资源标签,标签是一种键值数据

spec: 		//定义目标资源的期望状态
常见参数



自主式Pod资源清单

vim pod.yaml
kubectl apply -f pod.yaml /启用

apiVersion: v1
kind: Pod
metadata:
  name: pod-example
  labels:
    app: demo
spec:
  containers:
  - name: ubuntu
    image: ubuntu:trusty

    command: ["/bin/sh", "-c", "sleep 3600"]
  - name: nginx
    image: nginx

策略使用案例 ImagePullPloicy镜像拉取策略

IfNotPresent #默认值,镜像在宿主机上不存在时才拉取
Always #每次创建pod都会重新拉取一次镜像
Never #pod永远不会主动拉取镜像,需要我们手动拉取

[root@server2 pod]# kubectl delete -f pod.yaml /删除
[root@server2 pod]# vim pod.yaml
[root@server2 pod]# kubectl apply -f pod.yaml

[root@server2 pod]# kubectl describe pod pod-example
查看详细信息,信息显示本地已有镜像不需要重复拉取

容器端口映射

[root@server2 pod]# kubectl delete -f pod.yaml
[root@server2 pod]# vim pod.yaml
[root@server2 pod]# kubectl apply -f pod.yaml
[root@server2 pod]# kubectl get pod -o wide

containerPort:指定生成的pod中容器副本需要监听的端囗号
hostPort:指定容器所在主机需要监听的端囗号,默认跟上面containerPort相同,设置了hostPort后,同一台主机无法启动该容器的相同副本,因为主机端囗号不能相同,这样会冲突

[root@server4 ~]# iptables -t nat -nL | grep :80

资源限制

[root@server2 pod]# kubectl delete -f pod.yaml
[root@server2 pod]# vim pod.yaml
[root@server2 pod]# kubectl apply -f pod.yaml

resources.limits.cpu :指定cpu的限制,
resources.limits.memory :指定内存限制
resources.requests.cpu 容器启动时初始化可用数量
resources.requests.memory: 容器启动时初始化可用数量

[root@server2 pod]# kubectl describe pod pod-example
查看pod副本详细信息可以看到所设置的资源限制策略

强制调度

[root@server2 pod]# kubectl delete -f pod.yaml
[root@server2 pod]# vim pod.yaml
[root@server2 pod]# kubectl apply -f pod.yaml

强制调度节点为server3


主机网络模式

查看节点上的映射到主机应用

[root@server2 pod]# vim pod.yaml
[root@server2 pod]# kubectl delete -f pod.yaml
[root@server2 pod]# kubectl apply -f pod.yaml
[root@server2 pod]# kubectl get pod -o wide
hostnetwork:true
应用与宿主机共享网络空间,也就是k8s节点的IP,端口占用与宿主机一样。这样应用的IP就是宿主机的IP,与另一个应用的连接也不经过service IP这一层。
查看应用端口发现没有

restartPolicy重启策略

Pod 的 spec 中包含一个 restartPolicy 字段,其可能取值包括 Always、onFailure 和 Never。默认值是 Always。

如下图,当我们我们没有设置重启策略时,不管pod是如何关闭的,pod都可以可以直接重启

[root@server2 pod]# kubectl delete pod busybox
[root@server2 pod]# kubectl run -i -t busybox --image=busybox

设置其重启策略为Never,终止运行后查看Pod的信息可以看到这一新建pod没有被k8s重启

[root@server2 pod]# kubectl delete pod busybox

[root@server2 pod]# kubectl run -i -t busybox --image=busybox --restart=Never

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

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

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