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"]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/70305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java语法糖详解

前言 在现代编程语言的发展历程中,语法糖(Syntactic Sugar)作为一种提升代码可读性和开发效率的重要特性,已经成为语言设计的重要组成部分。Java作为一门成熟且广泛应用的编程语言,在其长期演进过程中,语法…

深度学习 - 神经网络的原理

## 深度学习 - 神经网络的原理 深度学习是机器学习的一个分支,其核心是模拟人脑神经网络的结构和功能,构建多层的神经网络模型,从数据中学习特征并进行预测或分类。 **神经网络的基本原理:** 1. **神经元模型:** * 神经网…

机器学习中的关键概念:通过SKlearn的MNIST实验深入理解

欢迎来到我的主页:【Echo-Nie】 本篇文章收录于专栏【机器学习】 1 sklearn相关介绍 Scikit-learn 是一个广泛使用的开源机器学习库,提供了简单而高效的数据挖掘和数据分析工具。它建立在 NumPy、SciPy 和 matplotlib 等科学计算库之上,支持…

【深度学习框架】MXNet(Apache MXNet)

MXNet(Apache MXNet)是一个 高性能、可扩展 的 开源深度学习框架,支持 多种编程语言(如 Python、R、Scala、C 和 Julia),并能在 CPU、GPU 以及分布式集群 上高效运行。MXNet 是亚马逊 AWS 官方支持的深度学…

Java数据结构与算法之“树”

目录 一、什么是树 ​编辑 二、树的相关组成 1. 常用名词 2.需要了解的名词 三、树的分类 (一)初级树 1.普通树 2.二叉树 (二)中级树 1.哈夫曼树HuffmanTree 2.二叉搜索树BST 3.平衡二叉树AVL (三&#x…

【Linux】27.Linux 多线程(1)

文章目录 1. Linux线程概念1.1 线程和进程1.2 虚拟地址是如何转换到物理地址的1.3 线程的优点1.4 线程的缺点1.5 线程异常1.6 线程用途 2. Linux进程VS线程2.1 进程和线程2.2 关于进程线程的问题 3. Linux线程控制3.1 POSIX线程库3.2 创建线程3.3 线程终止3.4 线程等待3.5 分离…

SpringAI系列 - 使用LangGPT编写高质量的Prompt

目录 一、LangGPT —— 人人都可编写高质量 Prompt二、快速上手2.1 诗人 三、Role 模板3.1 Role 模板3.2 Role 模板使用步骤3.3 更多例子 四、高级用法4.1 变量4.2 命令4.3 Reminder4.4 条件语句4.5 Json or Yaml 方便程序开发 一、LangGPT —— 人人都可编写高质量 Prompt La…

2025.2.6

一、C思维导图: 二、C: 三、注释代码 1> 配置文件:.pro文件 QT core gui # 引入的类库,core表示核心库 gui图形化界面库greaterThan(QT_MAJOR_VERSION, 4): QT widgets # 超过版本4的qt,会自动加widgets…

vue2-插槽slot

文章目录 vue2-插槽slot1. 什么是slot2. slot分类2.1 默认插槽2.2 具名插槽2.3 作用域插槽 vue2-插槽slot 1. 什么是slot 在vue中,slot翻译为插槽,简单点说,就是在子组件内放置一个插槽,等待父组件在使用子组件的时候决定放什么…

【算法应用】Alpha进化算法求解二维栅格路径规划问题

目录 1.算法原理2.二维路径规划数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 Alpha进化:一种具有进化路径自适应和矩阵生成的高效进化算法 2.二维路径规划数学模型 栅格法模型最早由 W.E. Howden 于 1968 年提出,障碍物的栅格用黑色表示&#…

《深度洞察ICA:人工智能信号处理降维的独特利器》

在人工智能技术飞速发展的今天,信号处理作为关键环节,面临着数据维度不断攀升的挑战。高维信号数据虽蕴含丰富信息,但也给处理和分析带来诸多难题,如计算资源消耗大、分析复杂度高、模型易过拟合等。独立成分分析(ICA&…

ubuntu20.04+RTX4060Ti大模型环境安装

装显卡驱动 这里是重点,因为我是跑深度学习的,要用CUDA,所以必须得装官方的驱动,Ubuntu的附件驱动可能不太行. 进入官网https://www.nvidia.cn/geforce/drivers/,选择类型,最新版本下载。 挨个运行&#…

vmware虚拟机可以使用Windows的GPU吗

是的,VMware虚拟机可以使用Windows的GPU,但这需要满足一定的条件,并且需要进行一些配置。以下是关键点: 1. 硬件要求 GPU支持直通(Passthrough):你的物理GPU必须支持硬件直通(VT-d…

Spring Boot 2 快速教程:WebFlux优缺点及性能分析(四)

WebFlux优缺点 【来源DeepSeek】 Spring WebFlux 是 Spring 框架提供的响应式编程模型,旨在支持非阻塞、异步和高并发的应用场景。其优缺点如下: 优点 高并发与低资源消耗 非阻塞 I/O:基于事件循环模型(如 Netty)&am…

DeepSeek 硅基流动

DeepSeek 硅基流动 🎁 四大神仙优势🌟 三步拥有官网同款671B大模型1️⃣ 戳这里👉 国内直连通道2️⃣ 复制API密钥3️⃣ 安装Chatbox贴进软件秒变AI大佬 📁 网盘地址:(所用到的软件可以直接下载&#xff09…

利用UNIAPP实现短视频上下滑动播放功能

在 UniApp 中实现一个短视频上下滑动播放的功能,可以使用 swiper 组件来实现滑动效果,并结合 video 组件来播放短视频。以下是一个完整的示例,展示如何在 UniApp 中实现这一功能。 1. 创建 UniApp 项目 如果你还没有创建 UniApp 项目,可以使用 HBuilderX 创建一个新的项目…

ES6 变量解构赋值总结

1. 数组的解构赋值 1.1 基本用法 // 基本数组解构 const [a, b, c] [1, 2, 3]; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3// 跳过某些值 const [x, , y] [1, 2, 3]; console.log(x); // 1 console.log(y); // 3// 解构剩余元素 const [first, ...re…

数据库迁移后在密码不知道的情况下重建DBLINK

9i和10gR1版本之前,所有 dblink 的密码都是以明文方式在 sys.link$ 中的password字段中存储。可以直接通过查询sys.link$基表进行SQL拼接来完成迁移dblink。 select create database link ||NAME || connect to || USERID || identified by || password || using…

mysql 学习10 多表查询 -多表关系,多表查询

多表关系 一对多 多对多 创建学生表 #多对多表 学生选课系统create table student(id int primary key auto_increment comment 主键ID,name varchar(64) comment 姓名,studentnumber varchar(10) comment 学号 )comment 学生表;insert into student(id,name,studentnumber)va…

云端IDE如何重定义开发体验

豆包 MarsCode 是一个集成了AI功能的编程助手和云端IDE,旨在提高开发效率和质量。它支持多种编程语言和IDE,提供智能代码补全、代码解释、单元测试生成和问题修复等功能,同时具备AI对话视图和开发工具。 豆包 MarsCode 豆包 MarsCode 编程助…