我现在正在尝试在Kubernetes集群上运行一个带shell(/ bin/bash)的简单容器.
我认为有一种方法可以通过使用pseudo-tty和分离选项(命令-td选项docker run)来保持容器在Docker容器上运行.
例如,
$ sudo docker run -td ubuntu:latest
Run Code Online (Sandbox Code Playgroud)
在Kubernetes有这样的选择吗?
我尝试使用如下kubectl run-container命令运行容器:
kubectl run-container test_container ubuntu:latest --replicas=1
Run Code Online (Sandbox Code Playgroud)
但容器会退出几秒钟(就像使用docker run上面提到的没有选项的命令启动一样).并且ReplicationController重复再次启动它.
有没有办法让Kubernetes上的容器像命令中的-td选项一样运行docker run?
"kubectl logs"向我展示了一个Kubernetes容器的stderr/stdout.如何获取一组pod的聚合stderr/stdout,最好是由某个复制控制器创建的那些?
我让Kubernetes在两个不同的环境中运行良好,即在我的本地环境(运行minikube的MacBook)以及Google的Container Engine(GCE,Google Cloud上的Kubernetes).我使用MacBook /本地环境开发和测试我的YAML文件,然后在完成后,在GCE上尝试它们.
目前我需要单独处理每个环境:我需要在本地环境中编辑YAML文件,并在准备好后,(git)将它们克隆到GCE环境,然后使用/部署它们.这是一个有点麻烦的过程.
理想情况下,我想使用Macbook中的kubectl轻松切换本地minikube或GCE Kubernetes环境,并轻松确定YAML文件的使用位置.有没有一种简单的方法来切换上下文来做到这一点?
我创建了一个Kubernetes预定作业,根据其日程安排每天运行两次.但是,我想手动触发它以进行测试.我怎样才能做到这一点?
kubectl logs <pod-id>
Run Code Online (Sandbox Code Playgroud)
从我的部署中获取最新日志 - 我正在处理一个错误并且有兴趣在运行时知道日志 - 如何获得连续的日志流?
编辑:最后纠正的问题.
kubectl配置视图显示与已删除的集群对应的上下文和集群.
我该如何删除这些条目?
命令
kubectl config unset clusters
Run Code Online (Sandbox Code Playgroud)
似乎删除所有群集.有没有办法有选择地删除群集条目?上下文怎么样?
我正在尝试将我的应用部署到运行在Google容器引擎中的Kubernetes.
该应用程序可以在以下网址找到:https://github.com/Industrial/docker-znc.
该Dockerfile内置的图像谷歌集装箱登记.
我已经通过+按钮在Kubernetes中部署了应用程序.我没有这个YAML.
我在Kubernetes中插入了一个Secret,用于应用程序所需的PEM文件.
yaml docker kubernetes google-kubernetes-engine google-container-registry
我一直在挖掘Kubernetes文档几个小时.我理解核心设计,以及服务,控制器,pod等的概念.
但是,我不明白的是我可以声明性地配置群集的过程.也就是说,我可以编写配置文件(或其中的一组)来定义组合,以及扩展云部署的选项.我希望能够在不运行大量cli命令的情况下声明我想要哪些容器在哪些容器中,它们将如何通信,如何扩展等等.
Kubernetes 是否有docker -compose功能?
我希望我的应用程序在git中定义为版本控制 - 而不依赖于手动cli交互.
这有可能以简洁的方式进行吗?是否有比官方文档更清晰的参考?
我想知道复制控制器和Kubernetes(1.2)中的部署有什么区别.通过入门文档(http://kubernetes.io/docs/hellonode/)我创建了一个部署 - 但它没有显示在Web UI上.
当我从Web UI创建应用程序时 - 它们被创建为复制控制器.从功能上看,它们看起来非常相似(它们都管理pod并提供服务).
那么 - 有什么区别我应该何时使用?
我正在寻找一种模式,允许在Kubernetes的同一个pod上运行的两个容器之间共享卷.
我的用例是:我在docker容器中运行了一个Ruby on Rails应用程序.docker镜像包含/app/<app-name>/public目录中的静态资源,我需要从同一pod中运行的nginx容器访问这些资源.
在"vanilla"docker中,我会用--volumes-fromflag来共享这个目录:
docker run --name app -v /app/<app-dir>/public <app-image>
docker run --volumes-from app nginx
Run Code Online (Sandbox Code Playgroud)
阅读此文档后:https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/volumes.md 我试过这个(只提供相关条目):
spec:
containers:
- image: <app-image>
name: <app-name>
volumeMounts:
- mountPath: /app/<app-name>/public
name: assets
- image: nginx
name: nginx
volumeMounts:
- mountPath: /var/www/html
name: assets
readOnly: true
volumes:
- name: assets
hostPath:
path: /tmp/assets
Run Code Online (Sandbox Code Playgroud)
但:
/tmp/assets节点存在,它也是空的/app/<app-name>/public app容器内部也是空的作为一种解决方法,我将尝试在应用程序容器启动时填充共享目录(仅限cp /app/<app-name>/public/*于共享目录),但我真的不喜欢这个想法.
问题:如何模仿--volumes-fromKubernetes,或者如果没有直接对应物,我如何将文件从一个容器共享到另一个容器中运行?
apiVersion: v1beta3
Client Version: version.Info{Major:"0", Minor:"17", GitVersion:"v0.17.0", …Run Code Online (Sandbox Code Playgroud)