前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tke集群用lxcfs实现容器资源展示隔离

tke集群用lxcfs实现容器资源展示隔离

原创
作者头像
聂伟星
发布2022-03-30 15:47:54
1.1K1
发布2022-03-30 15:47:54
举报
文章被收录于专栏:腾讯云容器运维

容器技术提供了不同于传统虚拟机技术的环境隔离方式。通常的 Linux 容器对容器打包和启动进行了加速,但也降低了容器的隔离强度。其中 Linux 容器最为知名的问题就是资源视图隔离问题。

容器可以通过 cgroup 的方式对资源的使用情况进行限制,包括: 内存,CPU 等。但是需要注意的是,如果容器内的一个进程使用一些常用的监控命令,如: free, top 等命令其实看到还是物理机的数据,而非容器的数据。这是由于容器并没有做到对 /proc, /sys 等文件系统的资源视图隔离。

lxcfs 是通过文件挂载的方式,把 cgroup 中关于系统的相关信息读取出来,通过 docker 的 volume 挂载给容器内部的 proc 系统。 然后让 docker 内的应用读取 proc 中信息的时候以为就是读取的宿主机的真实的 proc。

下面我们来说下如何在tke集群用lxcfs来对容器资源进行视图隔离。

1. tlinux2.4操作系统tke集群开启lxcfs

如果你的集群节点操作系统是用的腾讯云的tlinux2.4,则可以修改节点内存参数开启这个特性,腾讯云对tlinux2.4做了特性订制。

代码语言:javascript
复制
# 全局开关
sysctl -w kernel.stats_isolated=1
# 容器级别开关
sysctl -w kernel.container_stats_isolated=0

具体参考文档说明https://cloud.tencent.com/document/product/213/53867

2. 非 tlinux2.4操作系统tke集群开启lxcfs

如果你的节点操作系统部署tlinux2.4,是centos或者ubuntu,则需要参考文档在集群部署下lxcfs的DaemonSet,具体yaml如下

代码语言:javascript
复制
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: lxcfs
  namespace: kube-system
  labels:
    name: lxcfs
spec:
  selector:
    matchLabels:
      name: lxcfs
  template:
    metadata:
      labels:
        name: lxcfs
    spec:
      priorityClassName: system-node-critical
      hostPID: true
      tolerations:
      - operator: Exists
      containers:
        - name: lxcfs-monitor
          image: ccr.ccs.tencentyun.com/tkeimages/lxcfs:4.0.8
          imagePullPolicy: Always
          command: ["/lxcfs-monitor.sh"]
          args: ["/var/lib/lxc"]
          resources:
            limits:
              cpu: 50m
              memory: 50Mi
          securityContext:
            privileged: true  
        - name: lxcfs
          image: ccr.ccs.tencentyun.com/tkeimages/lxcfs:4.0.8
          imagePullPolicy: Always
          command: ["/start.sh"]
          args: ["5", "/var/lib/lxc"]
          env:
          - name: ENV_DEBUG_COMM
            value: "true"
          - name: ENV_DEBUG_PID_CID
            value: "true"
          resources:
            limits:
              cpu: 2
              memory: 256Mi
          securityContext:
            privileged: true          
          volumeMounts:
            - name: lxcfs
              mountPath: /var/lib/lxc/lxcfs
              mountPropagation: Bidirectional
      volumes:
        - name: lxcfs
          hostPath:
            path: /var/lib/lxc/lxcfs
            type: DirectoryOrCreate

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. tlinux2.4操作系统tke集群开启lxcfs
  • 2. 非 tlinux2.4操作系统tke集群开启lxcfs
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档