当前位置: 首页 > news >正文

k8s,1.修改容器内主机名和/etc/hosts 文件,2.root特权容器,3.pod安全策略(基于名称空间

1.修改容器内主机名和/etc/hosts 文件,让持久生效,通过修改资源清单方式---kind: PodapiVersion: v1metadata:name: rootspec:hostname: myhost         # 修改主机名hostAliases:             # 修改 /etc/hosts- ip: 192.168.88.240     # IP 地址hostnames:             # 名称键值对- harbor               # 主机名containers:- name: apacheimage: myos:httpd
2.root特权容器1.系统进程特权,可以引起宿主机数据的变更hostPID: true     		# 特权,共享系统进程2.pod容器网络特权hostNetwork: true          # 特权,共享主机网络3.root特权securityContext:           # 安全上下文值privileged: true     # root特权容器# root用户特权的使用[root@node-0001 /]# mkdir /sysroot[root@node-0001 /]# mount /dev/vda1 /sysroot[root@node-0001 /]# mount -t proc proc /sysroot/proc[root@node-0001 /]# chroot /sysrootsh-4.2# : 此处已经是 node 节点上的 root 用户了---   #特权资源文件编写kind: PodapiVersion: v1metadata:name: rootspec:hostPID: true            # 特权,共享系统进程hostNetwork: true        # 特权,共享主机网络containers:- name: apacheimage: myos:httpdsecurityContext:       # 安全上下文值privileged: true     # root特权容器3.pod安全策略(基于名称空间来设置)1.语法:...pod-security.kubernetes.io/标签:策略kubectl label namespace myweb pod-security.kubernetes.io/标签:策略2.pod准入控制标签:1)enforce:违反策略会导致pod被拒绝2)audit:违反策略会触发审计日志,但是pod仍然可以被接受3)warn:违反策略会查发警告信息,但是pod仍然可以被接受3.pod安全策略1)privileged:不受限制的策略,提供最大范围权限,可以允许设置特权提升规则2)baseline:弱限制性的策略,禁止已知的策略提升权限,允许使用默认的pod配置3)restricted:非常严格的限制性策略,几乎不允许任何特权提升的行为4.测试安全策略:kubectl label namespaces mytest pod-security.kubernetes.io/warn=baselinekubectl -n mytest apply -f root.yaml即使这个名称空间设置的弱限制性策略,由于没有设置安全声明,也不能成功创建5.pod设置安全声明---kind: PodapiVersion: v1metadata:name: nonrootspec:containers:- name: phpimage: myos:php-fpmsecurityContext:                      # 声明安全策略allowPrivilegeEscalation: false     # 容器内没有权限提升的行为runAsNonRoot: true                  # 容器运行在非 root 用户下runAsUser: 65534                    # 运行容器用户的 UIDseccompProfile:                     # 容器使用了默认的安全配置type: "RuntimeDefault"capabilities:                       # 容器禁用了所有特权能力drop: ["ALL"]

1.修改容器内主机名和/etc/hosts 文件,让持久生效,通过修改资源清单方式

        ---
        kind: Pod
        apiVersion: v1
        metadata:
          name: root
        spec:
          hostname: myhost         # 修改主机名
          hostAliases:             # 修改 /etc/hosts
          - ip: 192.168.88.240     # IP 地址
            hostnames:             # 名称键值对
            - harbor               # 主机名
          containers:
          - name: apache
            image: myos:httpd
2.root特权容器

    1.系统进程特权,可以引起宿主机数据的变更
        hostPID: true             # 特权,共享系统进程

    2.pod容器网络特权
        hostNetwork: true          # 特权,共享主机网络
        
    3.root特权
         securityContext:           # 安全上下文值
                  privileged: true     # root特权容器

        # root用户特权的使用
        [root@node-0001 /]# mkdir /sysroot
        [root@node-0001 /]# mount /dev/vda1 /sysroot
        [root@node-0001 /]# mount -t proc proc /sysroot/proc
        [root@node-0001 /]# chroot /sysroot
        sh-4.2# : 此处已经是 node 节点上的 root 用户了

        ---   #特权资源文件编写
        kind: Pod
        apiVersion: v1
        metadata:
          name: root
        spec:
          hostPID: true            # 特权,共享系统进程
          hostNetwork: true        # 特权,共享主机网络
          containers:
          - name: apache
            image: myos:httpd
            securityContext:       # 安全上下文值
              privileged: true     # root特权容器

3.pod安全策略(基于名称空间来设置)
    1.语法:...pod-security.kubernetes.io/标签:策略
        kubectl label namespace myweb pod-security.kubernetes.io/标签:策略

    2.pod准入控制标签:
        1)enforce:违反策略会导致pod被拒绝
        2)audit:违反策略会触发审计日志,但是pod仍然可以被接受
        3)warn:违反策略会查发警告信息,但是pod仍然可以被接受

    3.pod安全策略
        1)privileged:不受限制的策略,提供最大范围权限,可以允许设置特权提升规则
        2)baseline:弱限制性的策略,禁止已知的策略提升权限,允许使用默认的pod配置
        3)restricted:非常严格的限制性策略,几乎不允许任何特权提升的行为

    4.测试安全策略:kubectl label namespaces mytest pod-security.kubernetes.io/warn=baseline
        kubectl -n mytest apply -f root.yaml
        即使这个名称空间设置的弱限制性策略,由于没有设置安全声明,也不能成功创建

    5.pod设置安全声明
        ---
        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"]

相关文章:

k8s,1.修改容器内主机名和/etc/hosts 文件,2.root特权容器,3.pod安全策略(基于名称空间

1.修改容器内主机名和/etc/hosts 文件,让持久生效,通过修改资源清单方式---kind: PodapiVersion: v1metadata:name: rootspec:hostname: myhost # 修改主机名hostAliases: # 修改 /etc/hosts- ip: 192.168.88.240 # IP 地址hostnames: # 名…...

MSPFN 代码复现

1、环境配置 conda create -n MSPFN python3.9 conda activate MSPFN pip install opencv-python pip install tensorflow pip install tqdm pip install matplotlib2、train 2.1 创建数据集 2.1.1 数据集格式 |--rainysamples |--file1: |--file2:|--fi…...

除了console.error,还有什么更好的错误处理方式?

除了 console.error,在 Vue 应用中进行更好的错误处理可以采用以下几种方式: 一、使用全局错误处理 Vue 的错误捕获在 Vue 2 中,可以使用 errorHandler 来捕获全局的错误: Vue.config.errorHandler = (err, vm, info) => {// 处理错误,例如记录日志logError(err, info…...

力扣.270. 最接近的二叉搜索树值(中序遍历思想)

文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的中序遍历) 本题的难点在于可能存在多个答案,并且要返回最小的那一个,为了解决这个问题,我门则要利用上二叉搜索树中序遍历为有序序列的特性,具体到代码中&a…...

Yageo国巨的RC系列0402封装1%电阻库来了

工作使用Cadence多年,很多时候麻烦的就是整理BOM,因为设计原理图的时候图省事,可能只修改value值和封装。 但是厂家,规格型号,物料描述等属性需要在最后的时候一行一行的修改,繁琐又容易出错,过…...

wait/notify/join/设计模式

JUC wait obj.wait() 让进入 object 监视器的线程到 waitSet 等待wait()方法会释放对象的锁,进入 WaitSet 等待区,从而让其他线程就机会获取对象的锁。无限制等待,直到 notify 为止wait(long n)有时限的等…...

Windows Docker笔记-Docker拉取镜像

通过在前面的章节《安装docker》中,了解并安装成功了Docker,本章讲述如何使用Docker拉取镜像。 使用Docker,主要是想要创建并运行Docker容器,而容器又要根据Docker镜像来创建,那么首当其冲,必须要先有一个…...

七大排序思想

目录 七大排序的时间复杂度和稳定性 排序 插入排序 简单插入排序 希尔排序 选择排序 简单选择排序 堆排序 交换排序 冒泡排序 快速排序 快排的递归实现 hoare版本的快排 挖坑法的快排 双指针法的快排 快排的非递归 归并排序 归并的递归实现 归并的非递归实现…...

intra-mart实现简易登录页面笔记

一、前言 最近在学习intra-mart框架,在此总结下笔记。 intra-mart是一个前后端不分离的框架,开发时主要用的就是xml、html、js这几个文件; xml文件当做配置文件,html当做前端页面文件,js当做后端文件(js里…...

SpringBoot整合RocketMQ

前言 在当今快速发展的软件开发领域,构建高效、稳定的应用系统是每个开发者的追求。Spring Boot 作为一款极具影响力的开发框架,凭借其强大的自动化配置和便捷的开发特性,极大地简化了项目搭建过程。使用 Spring Boot,我们无需再…...

深入理解 YUV Planar 和色度二次采样 —— 视频处理的核心技术

深入理解 YUV Planar 和色度二次采样 —— 视频处理的核心技术 在现代视频处理和编码中,YUV 颜色空间和**色度二次采样(Chroma Subsampling)**是两个非常重要的概念。它们的结合不仅能够显著减少视频数据量,还能在保持较高视觉质量的同时优化存储和传输效率。而 YUV Plana…...

项目顺利交付,几个关键阶段

年前离放假还有10天的时候,来了一个应急项目, 需要在放假前一天完成一个演示版本的项目,过年期间给甲方领导看。 本想的最后几天摸摸鱼,这么一来,非但摸鱼不了,还得加班。 还在虽然累,但也是…...

第七天 开始学习ArkTS基础,理解声明式UI编程思想

学习 ArkTS 的声明式 UI 编程思想是掌握 HarmonyOS 应用开发的核心基础。以下是一份简洁高效的学习指南,帮助你快速入门: 一、ArkTS 声明式 UI 核心思想 数据驱动 UI f(state):UI 是应用状态的函数,状态变化自动触发 UI 更新。单…...

windows C++ Fiber (协程)

协程,也叫微线程,多个协程在逻辑上是并发的,实际并发由用户控件。 在windows上引入了纤程(fiber)。 WinBase.h 中函数原型 #if(_WIN32_WINNT > 0x0400)// // Fiber begin //#pragma region Application Family or OneCore Family or Game…...

游戏引擎学习第89天

回顾 由于一直没有渲染器,终于决定开始动手做一个渲染器,虽然开始时并不确定该如何进行,但一旦开始做,发现这其实是正确的决定。因此,接下来可能会花一到两周的时间来编写渲染器,甚至可能更长时间&#xf…...

2025新鲜出炉--前端面试题(一)

文章目录 1. vue3有用过吗, 和vue2之间有哪些区别2. vue-router有几种路由, 分别怎么实现3. webpack和rollup这两个什么区别, 你会怎么选择4. 你能简单介绍一下webpack项目的构建流程吗5. webpack平时有手写过loader和plugin吗6. webpack这块你平时做过哪些优化吗?7…...

教程 | i.MX RT1180 ECAT_digital_io DEMO 搭建(一)

本文介绍 i.MX RT1180 EtherCAT digital io DEMO 搭建,Master 使用 TwinCAT ,由于步骤较多,分为上下两篇,本文为第一篇,主要介绍使用 TwinCAT 控制前的一些准备。 原厂 SDK 提供了 evkmimxrt1180_ecat_examples_digit…...

Pyecharts系列课程04——折线图/面积图(Line)

本章我们学习在Pyecharts中折线图(Line)的使用。折线图通用应用于数据的趋势分析。 折线图 我们现在有两组数据,x_data是2024年的月份,y_data为对应张三甲每个月的用电量。 # 家庭每月用电量趋势 x_data ["1月", &q…...

变压器-000000

最近一个项目是木田12V的充电器,要设计变压器,输出是12V,电压大于1.5A12.6*1.518.9W. 也就是可以将变压器当成初级输入的一个负载。输入端18.9W. 那么功率UI 。因为变压器的输入是线性上升的,所以电压为二份之一,也就是1/2*功率…...

凝思60重置密码

凝思系统重置密码 - 赛博狗尾草 - 博客园 问题描述 凝思系统进入单用户模式,在此模式下,用户可以访问修复错误配置的文件。也可以在此模式下安装显卡驱动,解决和已加载驱动的冲突问题。 适用范围 linx-6.0.60 linx-6.0.80 linx-6.0.100…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

LLM基础1_语言模型如何处理文本

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

Python如何给视频添加音频和字幕

在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

2025季度云服务器排行榜

在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...