当我在POD/POD模板中定义多个容器时,例如一个运行agent
和另一个php-fpm
的容器时,它们如何互相访问?我需要agent container
通过Shell连接到php-fpm
,并且需要通过agent container
进行交互执行几个步骤。
根据我的理解,我们可以将kubectl
包装到agent container
中,并使用kubectl exec -it <container id> sh
连接到容器。但是我不希望Agent container
拥有比与php-fpm
连接到目标容器的更多特权。
agent container
可以通过外壳连接到php-fpm
并进行交互式命令有更好的方法?
另外,由于以下错误,我在使用minikube
时没有成功从容器运行kubectl
docker run -it -v ~/.kube:/root/.kube lachlanevenson/k8s-kubectl get nodes
Error in configuration:
* unable to read client-cert /Users/user/.minikube/apiserver.crt for minikube due to open /Users/user/.minikube/apiserver.crt: no such file or directory
* unable to read client-key /Users/user/.minikube/apiserver.key for minikube due to open /Users/user/.minikube/apiserver.key: no such file or directory
* unable to read certificate-authority /Users/user/.minikube/ca.crt for minikube due to open /Users/user/.minikube/ca.crt: no such file or directory
docker run -It -V〜/.kube:/root/.kube lachlanevenson/k8s -kubectl get nodes
- 首先,K8S群集中的每个POD都有
/var/run/secrets/kubernetes.io/serviceaccount/token
提供的K8S凭据,因此绝对无需尝试将您的主目录安装到Docker容器 - 您获得有关
client-cert
的错误的原因是因为~/.kube
的内容仅是 strings ,指向外部定义的SSL键,SSL证书和SSL CA证书,而SSL CA证书定义了~/.kube/config
- 但是我不会谈论进一步解决这个问题,因为没有充分的理由使用该方法