前置需求
- POD 名稱ks-installer-58b9cf7c4c-qtgrn
進入Pod修改/etc/resolv.conf文件權限(文件原為只讀)
遭遇問題
1、通過k8s exec命令進入pod
kubectl exec -it ks-installer-58b9cf7c4c-qtgrn -n kubesphere-system /bin/bash
2、修改resolv.conf文件權限,提示
chmod 666 /etc/resolv.conf
chmod: /etc/resolv.conf: Operation not permitted
解決方法
通過K8S EXEC進入Pod的用戶是普通用戶,而修改文件我們需要root權限。K8S EXEC命令目前沒有找到指定用戶的相關參數,但是Docker的EXEC命令可以通過-u指定root用戶,那么可以通過docker命令進入Pod進行操作。
1、查詢Pod的Docker容器Id
kubectl describe pod ks-installer-58b9cf7c4c-qtgrn -n kubesphere-system
2、通過docker exec 用管理員權限進入容器
docker exec -u root 1a0dfe3d4c75f30512a14756f63a200226aff2b157b0fdfa80e14f455cb40e69 -/bin/bash
注意:要注意pod是被k8s調度到那個節點上邊,需要在對應的節點上執行docker命令
3、修改resolv.conf文件權限