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