首页 > 其他分享 >Kubernetes--管理Pod对象的容器(3)

Kubernetes--管理Pod对象的容器(3)

时间:2022-10-20 15:46:51浏览次数:55  
标签:容器 Kubernetes -- spec 对象 节点 Pod pod

共享节点的网络名称空间

同一个Pod对象的各容器均运行于一个独立的、隔离的Network名称空间中,共享同一个网络协议栈及相关的网络设备。也有一些特殊的Pod对象需要运行于所在节点的名称空间中,执行系统级的管理任务,例如查看和操作节点的网络资源甚至是网络设备等。

通常,以kubeadm部署的Kubernetes集群中的 kube-apiserver、kube-controller-manager、kube-scheduler,以及kube-proxy和kube-flannel等通常都是第二种类型的Pod对象。事实上,仅需要设置spec.hostNetwork的属性为true即可创建共享节点网络名称空间的Pod对象,如下面的配置清单所示:

apiVersion: v1
kind: Pod
metadata:
  name: pod-use-hostnetwork
spec:
  containers:
  - name: myapp
    image: ikubernetes/myapp:v1
  hostNetwork: true

  将上面的配置清单保存于配置文件中,如pod-use-hostnetwork.yaml,将其创建于集群上,并查看其网络接口的相关属性信息以验证它是否能否共享使用工作节点的网络名称空间:

kubectl apply -f pod-use-hostnetwork.yaml
kubectl exec -it pod-use-hostnetwork -- sh
/ # ifconfig
eth0    Link······
······

  如上述命令的结果显示所示,它打印出的是工作节点的网络设备及其相关的接口信息。这就意味着,Pod对象中运行的容器化应用也将监听于其所在的工作节点的IP地址之上,这可以通过直接向node03.ilinux.io节点发起请求来验证:

  curl node03.ilinux.io
 Hello MyApp | Version:v1 | <a href="hostname.html">Pod Name</a>

  

另外,在Pod对象中时还可以分别使用spec.hostPID和spec.hostPC来共享工作节点的PID和IPC名称空间。

设置Pod对象的安全上下文

Pod对象的安全上下文用于设定Pod或容器的权限和访问控制功能,其支持设置的常用属性包括以下几个方面。

  • 基于用户ID(UID)和组ID(GID)控制访问对象(如文件)时的权限。
  • 以特权或非特权的方式运行。
  • 通过Linux Capabilities为其提供部分特权。
  • 基于Seccomp过滤进程的系统调用。
  • 基于SELinux的安全标签。
  • 是否能够进行权限升级。

Pod对象的安全上下文定义在spec.securityContext字段中,而容器的安全上下文则定义在spec.containers[].securityContext字段中,且二者可嵌套使用的字段还有所不同。下面的配置清单示例为 busybox容器定义了安全上下文,它以uid为1000的非授权用户运行容器,并禁止权限升级:

apiVersion: v1
kind: Pod
metadata:
  name: pod-with-securitycontext
spec:
  containers:
  - name: busybox
    image: busybox
    command: ["/bin/sh","-c","sleep 86400"]
    securityContext:
      runAsNonRoot: true
      runAsUser: 1000
      allowPrivilegeEscalation: false

  

将上面的配置清单保存于配置文件(如pod-with-securitycontext.yaml文件)中,而后创建于集群中即可验证容器进程的运行者身份:

 

  kubectl apply -f pod-with-securitycontext.yaml
  kubectl exec pod-with-securitycontext -- ps aux
PID   USER     TIME   COMMAND
    1 1000      0:00  sleep 86400
   14 1000      0:00  pa aux

  另外,可设置的安全上下文属性还有fsGroup、seLinuxOptions、supplementalGroups、sysctls、capabilities和privileged等,且Pod和容器各自支持的字段也有所不同,感兴趣的可按需对各属性进行测试。


标签:容器,Kubernetes,--,spec,对象,节点,Pod,pod
From: https://www.cnblogs.com/zhangxin9/p/16810073.html

相关文章

  • 调试遇到的一些问题记录【持续记录】
    1.std::vector作为入参,跨dll传输引起的崩溃问题崩溃现象:监控传入的std变量:在dll外部时,std::vector_Myval2为std_Container_base0,在dll内部时,std::vector_Myval2为std_Con......
  • CentOS——磁盘分区
    Centos7-磁盘分区磁盘层次结构–磁盘分区方法情况一:磁盘分区–磁盘小于2Tfdisk情况二:磁盘分区–磁盘大于2Tcentos6:partedcentos7:fdisk一、磁盘小于2T情况,fdisk分区1......
  • 初识区块链 如何在去中心化网络中形成共识
    本文将从日常生活如何形成共识,类比到在每个人都可以伪装自己的身份的网络上如何构建共识。再以此谈谈区块链网络中是如何做的,以及这种共识是怎么构成区块链的基石的。最后......
  • 正则匹配正整数及正整数+小数
    [0-100]不含0和100,只匹配整数constreg=/^([1-9][0-9]{0,1}|99)$/if(reg.test(value)===true){console.log(`匹配成功`)}[0-100]不含0和100,保留小数点后1......
  • 文法
    参考:https://eduai.baidu.com/view/44ac04d84593daef5ef7ba0d4a7302768e996f63......
  • IDS
    入侵检测系统(intrusiondetectionsystem,简称“IDS”)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。它与其他网络安全设备的......
  • 聊聊 PerformanceObserver
     背景在用户体验越来越重要的今天,关注页面性能、提升页面展现速度及交互体验逐渐成为前端开发非常重要的事情。为了监测页面性能,chrome开发团队就提出过监测网页性......
  • HTML5和CSS3的新特性
    HTML5的新特性1.用于绘画的canvas元素;2.用于媒介回放的video和audio;3.本地离线存储;4.新标签:header,footer,nav,section,article5.新的表单控件:date,time,email,url,cale......
  • 9000字,唠唠架构中的设计模式
    1设计模式概述​ 软件设计模式(SoftwareDesignPattern),俗称设计模式,设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设......
  • MybatisPlus对租户模式的支持(一)
    前言最近接到一个任务,要将现有的用户系统改成租户模式。改造成租户模式最简单的方式就是为需要进行数据隔离的表加上租户id字段,然后前端调接口查询数据时,根据当前用户的租......