容器中执行iptables:Permission denied
【摘要】 探究Istio数据面Istio-proxy如何实现流量劫持过程中遇到的容器中无法执行Iptable命令的解决办法。
##### 背景
探究iptables在istio中如何做流量劫持
##### 操作
+ 部署bookinfo的istio官方demo
+ 登录productpage pod所在node
``` shell
$ kubectl get pod -l app=productpage -owide
```
+ 登录productpage pod中的istio-proxy容器
``` shell
# docker ps |grep productpage
# docker exec -it {istio-proxy-dockerId} /bin/bash
```
+ istio-proxy容器中执行
```
$ sudo -i
# iptables -L -v
```
##### 异常
``` shell
# iptables v1.6.0: can't initialize iptables table `filter': Permission denied (you must be root)
```
##### 原因
iptables必须工作在容器的privileged模式下
##### 解决办法
登录istio-proxy容器登录时加上--privileged参数
``` shell
# docker exec --it --privileged {istio-proxy-dockerid} /bin/bash
```
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)