Tag: kubernetes

只有在上一个容器正在运行之后才启动容器

比方说,我有3个容器X,Y和Z.我希望容器Y只能在容器X运行之后启动,而容器Z只能在Y运行之后启动。 我该怎么做呢?

如何将kubectl日志保存到主机上的文件?

我可以通过运行“kubectl logs podName”来查看特定窗格的日志。 我也看到,日志包含一个选项–log-dir标志,但似乎没有工作。 是否有某种configuration可以更改,日志将保存到我的主机上的特定文件?

用kubectl均匀分配docker箱

如果我在集群中创build3个节点,那么如何将Docker容器均匀分布在容器中? 例如,如果我在每个节点上创build一个包含8个cpus的3个节点的集群,我通过性能分析确定了每个CPU运行一个容器时性能最佳。 gcloud container clusters create mycluster –num-nodes 3 –machine-type n1-standard-8 kubectl run myapp –image=gcr.io/myproject/myapp -r 24 当我跑上面的kubectl ,它把11个容器放在第一个节点上,第二个10个,第三个放3个。 我如何做到每个都是8?

如何通过kubernetes pod传递docker运行参数

您好我正在运行kubernetes群集,我运行Logstash容器。 但我需要运行它自己的docker运行参数。 如果我会直接在docker中运行它。 我会使用命令: docker run –log-driver=gelf logstash -f /config-dir/logstash.conf 但我需要通过Kubernetes吊舱运行。 我的豆荚看起来像: spec: containers: – name: logstash-logging image: "logstash:latest" command: ["logstash", "-f" , "/config-dir/logstash.conf"] volumeMounts: – name: configs mountPath: /config-dir/logstash.conf 如何通过kubernetes实现运行带有参数–log-driver = gelf的Docker容器。 谢谢。

将主机映射添加到Kubernetes中的/ etc / hosts

我有一个与kubernetes DNS映射的问题。 请看细节, 我们有一些可以从互联网上访问的服务器。 全球DNS将这些服务器的域名转换为公共互联网IP。 出于安全考虑,某些服务无法通过公共IP访问。 从公司内部,我们将私有IP地址的DNS映射添加到由kubernetespipe理的docker容器内的/ etc / hosts中以手动访问这些服务器。 我知道docker支持命令–add-host在执行“docker run”时更改/ etc / hosts。 我不确定这个命令是否支持最新的kubernetes,例如kuber 1.4或1.5? 另一方面,我们可以封装Docker容器的启动脚本, 首先将映射追加到/ etc / hosts 开始我们的申请 我只想在每个容器中首次运行后更改文件一次。 有没有一种简单的方法来做到这一点,因为在开发和生产环境之间的映射关系可能是不同的,或者由kubernetes本身提供的任何相关的命令? 感谢您的帮助。

我怎样才能让容器在Kubernetes上运行?

我现在试图在Kubernetes集群上运行一个带有shell(/ bin / bash)的简单容器。 我认为有一种方法可以通过使用伪tty和分离选项( -td docker run命令中的-td选项)来保持容器在Docker容器上docker run 。 例如 $ sudo docker run -td ubuntu:latest 在kubernetes中有这样的select吗? 我已经尝试使用kubectl run-container命令kubectl run-container kubectl run-container test_container ubuntu:latest –replicas=1 但容器会在几秒钟内退出(就像使用docker run命令启动,而不是前面提到的选项),而ReplicationController会再次启动它。 在Docker docker run命令中,是否有任何方法让容器在Kubernetes上运行,如-td选项?

指定在Kubernetes窗格上运行的订单Dockers

我试图在同一个Kubernetes窗格上运行两个Docker,我希望Docker容器之一总是在另一个之前运行。 我记得学习了在podconfiguration文件中指定这种依赖关系,但是现在找不到。 Kubernetes 文档也没有解释它。 这里是我从另一个Stackoverflow问题采用的两个容器的示例podconfiguration。 我应该如何改变这个podconfiguration在type2之前运行容器type1 ? { "id": "podId", "desiredState": { "manifest": { "version": "v1beta1", "id": "podId", "containers": [{ "name": "type1", "image": "local/image" }, { "name": "type2", "image": "local/secondary" }] } }, "labels": { "name": "imageTest" } } 在此先感谢,Nodir。

使用kubernetes填充敏感信息的Docker容器

我有一个运行容器的容器,需要访问API密钥和数据库密码等敏感信息。 现在,这些敏感值被embedded到控制器定义中,如下所示: env: – name: DB_PASSWORD value: password 然后在Docker容器中作为$DB_PASSWORD环境variables使用。 一切都相当简单。 但是阅读他们关于秘密的文档,他们明确地说,将敏感的configuration值放入您的定义中违反了最佳实践,并且可能是一个安全问题。 我能想到的唯一的其他策略是: 为每个用户社区或命名空间创build一个OpenPGP密钥 使用crypt将configuration值设置为etcd(使用私钥encryption) 创build一个包含私钥的kubernetes秘密, 像这样 将该秘密与容器相关联(意味着私钥可以作为卷装入), 就像这样 当容器启动时,它将访问卷装载中的私钥文件,并使用它来解密从etcd返回的conf值 这可以被合并到confd中 ,根据模板定义填充本地文件(比如Apache或者WordPress的configuration文件) 这看起来相当复杂,但更加安全和灵活,因为这些值将不再是静态的并以明文存储。 所以我的问题,我知道这不是一个完全客观的问题,这是否是完全必要的? 只有pipe​​理员能够首先查看和执行RC定义; 所以如果有人违反了kubernetes大师,还有其他问题需要担心。 我看到的唯一好处是,秘密不会以明文方式提交给文件系统。 有没有其他的方法来以安全的方式填充Docker容器的秘密信息?

Google的Borg和Google的Kubernetes和Docker有什么不同?

据我所知,Google的Kubernetes是基于Google的Borg; 然而,博格好像比库比内斯还要大。 我的理解是Borg是一个包含像Kubernetes这样的子系统和像Docker一样的容器的大系统。 所以,我想知道: 1)在集装箱集群pipe理方面,Borg(内部子系统)和Kubernetes之间的关键区别是什么? 2)在容器技术方面,Borg(子系统内部)和Docker之间的关键区别是什么?

为什么在这个Kubernetes部署中出现ErrImagePull错误?

我正在尝试使用Minikube,Docker Registry和演示节点项目来创build本地Kubernetes部署。 我做的第一件事是安装Docker v 1.12.3,然后是Minikube v0.12.2。 然后通过运行这个命令创build了一个Docker Registry容器(通过本教程 ,只运行下面的第一个命令) docker run -d -p 5000:5000 –name registry registry:2 接下来我运行这个minikube命令来创build一个本地kubernetes集群: minikube start –vm-driver="virtualbox" –insecure-registry="0.0.0.0:5000" 我的项目结构如下所示: . ├── Dockerfile └── server.js 和我的Dockerfile看起来像这样: FROM node:7.1.0 EXPOSE 8080 COPY server.js . CMD node server.js 然后我build立了自己的docker镜像并将其推送到我的私有存储库: docker build -t hello-node . docker tag hello-node localhost:5000/hello-node docker push localhost:5000/hello-node 然后我试着用这个命令运行一个部署: kubectl run […]