当前位置: 首页 > 面试题库 >

如何在容器内运行kubectl命令?

蓬思博
2023-03-14
问题内容

在pod内的容器中,如何使用kubectl运行命令?例如,如果我需要在容器内执行以下操作:

kubectl得到豆荚

我已经试过了:在我的dockerfile中,我有以下命令:

RUN curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
RUN chmod +x ./kubectl
RUN sudo mv ./kubectl /usr/local/bin/kubectl

编辑:我正在尝试OSX文件,我已将其更正为linux二进制文件。(由@svenwltr纠正

在创建docker文件时,这是成功的,但是当我在容器中运行kubectl get pod时,

kubectl get pods

我收到此错误:

服务器的连接:被拒绝-您是否指定了正确的主机或端口?

当我在本地部署时,如果我的docker-machine没有运行,那么我会遇到此错误,但是在容器内部,docker-machine如何运行?

在本地,我通过运行以下命令来解决此错误:(dev是docker-machine的名称)

docker-machine env dev
eval $(docker-machine env dev)

有人可以告诉我我需要做什么吗?


问题答案:

我将使用kubernetes api,您只需要安装curl,而不是kubectl其余的即可。

curl http://localhost:8080/api/v1/namespaces/default/pods

我在我的一个apiserver上运行以上命令。将 localhost 更改为 apiserver ip地址/ dns名称

根据您的配置,您可能需要使用ssl或提供客户端证书。

为了找到API端点,可以使用--v=8kubectl

例:

kubectl get pods --v=8

资源:

Kubernetes API文档

RBAC更新:

我假设您已经配置了rbac,为您的pod创建了一个服务帐户并使用它运行。此服务帐户应具有所需名称空间中的Pod的列表权限。为此,您需要为该服务帐户创建角色和角色绑定。

群集中的每个容器都填充有可用于向API服务器进行身份验证的令牌。要验证,在容器内部运行:

cat /var/run/secrets/kubernetes.io/serviceaccount/token

要向apiserver发出请求,请在容器内运行:

curl -ik \
     -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" \
     https://kubernetes.default.svc.cluster.local/api/v1/namespaces/default/pods


 类似资料:
  • 目的是从命令行执行gatling perf测试。等效docker命令是 现在,为了映射上面使用kubectl在库伯内特斯运行的docker,我创建了一个pod,下面是gradlewcommand.yaml文件 现在,使用以下命令创建容器:- 现在是我的实际要求或问题,我如何运行或触发kubectl run命令,以便在上面创建的pod中运行容器?,请注意,您的 pod 名称是 gradlecomma

  • 问题内容: 我要完成的工作是在已经使用Ansible在Digital Ocean Ubuntu / Docker Droplet上创建的Docker容器内运行命令。 似乎找不到任何东西,或者我主要是缺少一些东西。这是我在剧本中完成的任务。我对Ansible非常陌生,因此任何建议或智慧都将不胜感激。 问题答案: 您应该能够使用以下命令执行脚本(包含命令序列): 应该可以通过Ansible流程访问。

  • 问题内容: 我想在postgres映像中使用psql以便在数据库上运行一些查询。但是不幸的是,当我连接到postgres容器时,出现了该错误,找不到psql命令… 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 如何在postgres容器中运行psql命令?(我是Docker世界中的新手) 我使用Ubuntu作为主机,但没有在主机上安装postgres,而是使用postgre

  • 我想使用postgres映像中的psql在数据库上运行一些查询。但不幸的是,当我附加到postgres容器时,我得到的错误是psql命令找不到... 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 这是我的docker-compose.yml:

  • 我想运行podman作为运行CI/CD管道的容器。然而,我一直从podman容器中得到这个错误: 我使用Jenkins Kubernetes插件来编写CI/CD管道,这些管道在Kubernetes集群中作为容器运行。我已经成功地编写了使用Docker-in-Docker容器来运行< code>docker build和< code>docker push命令的管道。 然而,在容器中运行Docker

  • 问题内容: 我使用第三方GUI(Synology Docker软件包)来设置Docker容器。但是,它的局限性使我需要从命令行运行容器。(我想映射另一个主机IP绑定端口) 现在,由于已经完成了许多设置,因此我想检索启动该容器的原始运行命令,然后可以将端口映射端口更改为新端口。例如。“ ” 我找不到这样做的方法,事件使用“ docker inspect”,没有提供此类信息。 请提供一些建议以解决此问