首页 > 其他分享 >Pod管理策略2(资源清单文件)

Pod管理策略2(资源清单文件)

时间:2024-09-12 20:22:55浏览次数:3  
标签:node name 管理策略 master 清单 Pod root metadata

1.污点策略

尽量不调度:PreferNoSchedule 不被调度:NoSchedule 驱逐节点:NoExecute

# 设置污点标签
[root@master ~]# kubectl taint node node-0001 k=v:NoSchedule
node/node-0001 tainted

# 查看污点标签
[root@master ~]# kubectl describe nodes node-0001
Taints:             k=v:NoSchedule

# 删除污点标签
[root@master ~]# kubectl taint node node-0001 k=v:NoSchedule-
node/node-0001 untainted

# 查看污点标签
[root@master ~]# kubectl describe nodes node-0001
Taints:             <none>

# 查看所有节点污点标签
[root@master ~]# kubectl describe nodes |grep Taints
Taints:             node-role.kubernetes.io/control-plane:NoSchedule
Taints:             <none>
Taints:             <none>
Taints:             <none>
Taints:             <none>
Taints:             <none>

创建几个pod测试,pod不会使用NoSchedule节点.
-----------------------
# NoExecute 会删除节点上的 Pod
[root@master ~]# kubectl taint node node-0001 k=v:NoExecute
[root@master ~]# kubectl get pods
-------------------------
[root@master ~]# kubectl taint node node-0001 k-


2.容忍策略

[root@master ~]# vim myphp.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: myphp
spec:
  tolerations:
  - operator: Exists/Equal     # 部分匹配/完全匹配,存在即可
    key: k               # 键
    effect: NoSchedule   # 污点标签
  containers:
  - name: php
    image: myos:php-fpm
    resources:
      requests:
        cpu: 1200m


3.设置优先级(默认为0,数字越大优先级越高)

# 低优先级 Pod
[root@master ~]# vim php2.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: php2
spec:
  nodeSelector:
    kubernetes.io/hostname: node-0002
  priorityClassName: low-non      # 优先级名称
  containers:
  - name: php
    image: myos:php-fpm
    resources:
      requests:
        cpu: "1200m"

# 高优先级 Pod
[root@master ~]# vim php3.yaml 
---
kind: Pod
apiVersion: v1
metadata:
  name: php3
spec:
  nodeSelector:
    kubernetes.io/hostname: node-0002
  priorityClassName: high-non     # 优先级名称
  containers:
  - name: php
    image: myos:php-fpm
    resources:
      requests:
        cpu: "1200m"


4.抢占策略

preemptionPolicy: Never(非抢占优先级)/PreemptLowerPriority(抢占优先级)
[root@master ~]# vim mypriority.yaml
---
kind: PriorityClass
apiVersion: scheduling.k8s.io/v1
metadata:
  name: high-non
preemptionPolicy: Never
value: 1000

---
kind: PriorityClass
apiVersion: scheduling.k8s.io/v1
metadata:
  name: low-non
preemptionPolicy: Never
value: 500

---
kind: PriorityClass
apiVersion: scheduling.k8s.io/v1
metadata:
  name: high
preemptionPolicy: PreemptLowerPriority
value: 1000

---
kind: PriorityClass
apiVersion: scheduling.k8s.io/v1
metadata:
  name: low
preemptionPolicy: PreemptLowerPriority
value: 500

[root@master ~]# kubectl apply -f mypriority.yaml 
[root@master ~]# kubectl get priorityclasses.scheduling.k8s.io  
NAME                      VALUE        GLOBAL-DEFAULT   AGE
high                      1000         false            4s
high-non                  1000         false            2h
low                       500          false            4s
low-non                   500          false            2h
system-cluster-critical   2000000000   false            21d
system-node-critical      2000001000   false            21d



5.特权容器(Pod安全)

设置主机们和修改hosts文件

[root@master ~]# vim root.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: root
spec:
  hostname: myhost         # 修改主机名
  hostAliases:             # 修改 /etc/hosts
  - ip: 192.168.1.30       # IP 地址
    hostnames:             # 名称键值对
    - harbor               # 主机名
  containers:
  - name: apache
    image: myos:httpd








系统进程特权\网络特权\root用户特权

[root@master ~]# vim root.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: root
spec:
  hostPID: true            # 特权,共享系统进程
  hostNetwork: true        # 特权,共享主机网络
  containers:
  - name: apache
    image: myos:httpd
    securityContext:       # 安全上下文值
      privileged: true     # root特权容器


6.Pod安全策略

Pod管理策略2(资源清单文件)_Pod

Pod管理策略2(资源清单文件)_Pod_02


设置证书,声明安全策略可以被认为是安全的Pod,才可以创建

[root@master ~]# vim nonroot.yaml
---
kind: Pod
apiVersion: v1
metadata:
  name: nonroot
spec:
  containers:
  - name: php
    image: myos:php-fpm
    securityContext:                      # 声明安全策略
      allowPrivilegeEscalation: false     # 容器内没有权限提升的行为
      runAsNonRoot: true                  # 容器运行在非 root 用户下
      runAsUser: 65534                    # 运行容器用户的 UID
      seccompProfile:                     # 容器使用了默认的安全配置
        type: "RuntimeDefault"
      capabilities:                       # 容器禁用了所有特权能力
        drop: ["ALL"]



标签:node,name,管理策略,master,清单,Pod,root,metadata
From: https://blog.51cto.com/u_16975976/11992809

相关文章

  • 部署K8S集群(五):配置文件之Pod配置文件
    ●Pod是Kubernets中的基本执行单位,可以包含一个或多个容器。●Pod提供了容器间的网络和存储共享。apiVersion:v1kind:Podmetadata:name:my-podlabels:app:my-appspec:containers:#容器1:web页面#容器名称-name:web-container#容器......
  • 监管动态| 网络空间协会首次发布合规常用APP清单,是否会有第二批?
    9月10日中国网络空间安全协会官网发布公告,协会组织指导网上购物、地图导航、浏览器、新闻资讯、在线影音、电子图书、拍摄美化、云盘、短视频、演出票务共10类62款App运营方,对照《中华人民共和国网络安全法》《中华人民共和国个人信息保护法》《常见类型移动互联网应用程序必要个......
  • Pod管理策略(资源清单文件)
    了解模板和帮助信息方法[root@master~]#kubectlcreateTab键#查找需要使用的相关子命令[root@master~]#bubectl子命令--help[root@master~]#kubectlcreate复制查找出来的信息--dry-run=client-oyaml#获取资源对象模板[root@master~]#kubectlexplainP......
  • 理论+实战了解kubernetes及pod管理
    一、kubernetes简介及部署方法1.1kubernetes介绍kubernetes是一个容器编排软件工具,除了它还有doker自带的容器编排工具Swarm、apche的一个资源统一管控工具mesos等kubernetes在Docker作为高级容器引擎快速发展的同时,在Google内部,容器技术已经应用了很多年Borg系统运行......
  • 苹果新品发布会将推出AirPods Max 2头戴式耳机:降噪功能提升 改用USB-C接口
    9月9日消息,古尔曼今日发文称,苹果将在明日的“It'sGlowtime”活动中推出新的AirPodsMax。这是自2020年12月该耳机亮相以来的首次更新,而新的AirPodsMax将在明天的活动中与新的AirPods4一起推出。不过,此前古尔曼预测苹果不会推出新款AirPodsMax,而此次的发布消息打破了这一预测......
  • 选择品牌重塑代理机构:完美选择的五步清单
    对一个组织进行品牌重塑是企业生命周期中的关键任务。即使公司已经建立了强大的品牌,仍然有可能需要通过品牌重塑来实现多个目标,例如保持增长、扩展产品线、进入新的消费者群体或更新过时的品牌形象。建立品牌是一个复杂的过程,而执行品牌重塑则更具挑战性。你需要品牌专业知识......
  • Pod指标WSS和RSS区别
    在Kubernetes中,Pod的内存使用情况通常通过以下两个指标来监控:1.WSS(WorkingSetSize)定义:WSS是指Pod当前正在使用的内存量,包括活跃的、最近被访问的和缓存的内存。它代表了应用程序实际需要的内存量。特点:WSS是动态变化的,随着应用程序的运行状态而变化。它更能反映......
  • Kubernetes Pod四种常见调度策略详解
    在Kubernetes(k8s)的世界里,Pod是最基本的部署单元,它可能包含一个或多个容器。如何将这些Pod调度到集群中的适当节点上,是一个至关重要的问题。Kubernetes提供了多种调度策略,以确保Pods能够高效、稳定地运行。本文将详细介绍四种常见的KubernetesPod调度方式。1.默认调度默认调度......
  • Kubernetes Pod的常见调度方式
    Kubernetes中的Pod调度是将Pod分配到合适节点的过程。调度器负责这一过程,并有多种调度方式和策略,以下是一些常见的调度方式:1.默认调度(DefaultScheduling)功能:Kubernetes的默认调度器(kube-scheduler)会根据一系列内置的调度策略自动选择适合的节点。考虑因素:它会考虑节点......
  • 一文读懂Pod以及实践攻略
    ❤️感谢关注,原文来自:https://www.cnblogs.com/StevenZengStudy/p/18402282目录1.概念1.1什么是Pod1.2Pod管理容器1.3通过工作负载管理Pod1.4Pod的生命周期1.5静态pod2.Pod的基础操作2.1创建第一个Pod2.2修改和更新Pod2.3进入Pod的容器2.4删除Pod3.使用yaml文件配置Pod3.1......