创建一个包含TC的Alpine镜像

镜像的创建

  1. 更换镜像至ustc(为了测试时的速度)
  2. 安装musl-dev make gcc linux-headers bison flex以使TC可以编译
  3. 拷贝进TC的源代码
  4. 进入源代码文件夹进行编译
  5. 运行top(或任何不自动退出的程序)以便exec进入容器

Dockerfile如下:

FROM alpine

RUN rm /etc/apk/repositories
RUN echo -e "http://mirrors.ustc.edu.cn/alpine/v3.8/main\nhttp://mirrors.ustc.edu.cn/alpine/v3.8/community" > /etc/apk/repositories

RUN set -ex \
        && apk update && apk add --no-cache --virtual .build-deps \
                musl-dev \
                make \
                gcc \
                linux-headers \
                bison \
                flex

ADD iproute /code/iproute
RUN cd code/iproute && make
CMD top

部署用yaml的设置

TC内核通信权限设置

由于TC与内核通信并更改网络设置,需要提高容器权限,这需要在YAML文件中进行设置:

spec:
  containers:
    securityContext:
      privileged: true

这样容器内的TC才有权限通过netlink与内核进行通信

网络设置

TC所在的POD需要能够设置该Node的所有网卡,因此需要设置为hostNetwork网络,另外需要设置DNS以使Pod能以POD的身份访问service

    spec:
      hostNetwork: true
      dnsPolicy: ClusterFirstWithHostNet

最后的部署用的YAML如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: test-deployment
spec:
  selector:
    matchLabels:
      app: test
  replicas: 1
  template:
    metadata:
      labels:
        app: test
    spec:
      hostNetwork: true
      dnsPolicy: ClusterFirstWithHostNet
      containers:
      - name: test
        image: foo
        imagePullPolicy: Never
        securityContext:
          privileged: true

转载于:https://www.cnblogs.com/bforever/p/10601192.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值