Apache的Mesos和Google的Kubernetes有什么区别?我知道两者都是服务器集群管理软件.任何人都可以详细说明主要区别在哪里 - 什么时候会优先采用哪种框架?
你为什么要在Mesosphere上使用Kubernetes?
虽然潜入Docker,Google Cloud和Kubernetes,但还没有清楚地理解它们中的所有三个,在我看来这些产品是重叠的,但它们不兼容.
例如,需要重新编写docker-compose文件,以便可以将应用程序部署到Kubernetes.
有人可以提供一个高级粗略描述Docker,Docker-Compose,Docker Cloud和Kubernetes重叠的位置以及哪一个依赖于另一个?
我有几个我想要使用的docker图像minikube.我不想首先上传然后下载相同的图像,而不是直接使用本地图像.我该怎么做呢?
我试过的东西:
1.我尝试运行这些命令(单独,两次删除minikube的实例并重新开始)
kubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989
kubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989 imagePullPolicy=Never
Run Code Online (Sandbox Code Playgroud)
输出:
NAME READY STATUS RESTARTS AGE
hdfs-2425930030-q0sdl 0/1 ContainerCreating 0 10m
Run Code Online (Sandbox Code Playgroud)
它只是陷入某种状态但从未达到就绪状态.
2.我尝试创建一个注册表,然后将图像放入其中,但这也无效.我可能做错了但我找不到正确的指令来完成这项任务.
请提供在本地kubernetes实例中使用本地docker镜像的说明.
操作系统:ubuntu 16.04
Docker:Docker版本1.13.1,build 092cba3
Kubernetes:
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.3", GitCommit:"029c3a408176b55c30846f0faedf56aae5992e9b", GitTreeState:"clean", BuildDate:"2017-02-15T06:40:50Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
如果有人可以帮助我找到一个使用docker-compose来做这个的解决方案,那就太棒了.谢谢.
编辑:
加载的图片eval $(minikube docker-env:
REPOSITORY TAG IMAGE ID CREATED SIZE
fluxcapacitor/jupyterhub latest e5175fb26522 4 weeks ago 9.59 GB
fluxcapacitor/zeppelin latest …Run Code Online (Sandbox Code Playgroud) 我在文档中理解的是kubectl apply = kubectl create + kubectl replace.参考
我的理解是
如果我想在集群中创建新的k8s资源,我应该使用kubectl创建操作.现在,如果我想更新现场k8s资源中的内容,我应该使用kubectl替换操作.
如果我想做两个操作(创建一个新的k8s资源以及更新实时k8s资源)那么我应该使用kubectl应用操作
我的问题是为什么在集群中执行相同任务有三个操作?这些操作的用例是什么?他们如何在引擎盖下相互区别?
目前我正在使用kubectl create操作在集群中创建新资源.谢谢
我厌倦了删除一个带有12个pod的复制控制器,我可以看到一些pod停留在终止状态.我的Kubernetes设置包括在ubuntu vms中安装的一个主机和三个minons.这个问题可能是什么原因?
NAME READY STATUS RESTARTS AGE
pod-186o2 1/1 Terminating 0 2h
pod-4b6qc 1/1 Terminating 0 2h
pod-8xl86 1/1 Terminating 0 1h
pod-d6htc 1/1 Terminating 0 1h
pod-vlzov 1/1 Terminating 0 1h
Run Code Online (Sandbox Code Playgroud) 我一直在创建pods,type:deployment但我看到一些文档使用type:pod,更具体地说是多容器pod的文档:
apiVersion: v1
kind: Pod
metadata:
name: ""
labels:
name: ""
namespace: ""
annotations: []
generateName: ""
spec:
? "// See 'The spec schema' for details."
: ~
Run Code Online (Sandbox Code Playgroud)
但是要创建pod,我可以使用部署类型:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ""
spec:
replicas: 3
template:
metadata:
labels:
app: ""
spec:
containers:
etc
Run Code Online (Sandbox Code Playgroud)
我注意到pod文档说:
create命令可用于直接创建pod,也可以通过Deployment创建pod或pod.强烈建议您使用部署来创建pod.它会监视失败的pod,并根据需要启动新的pod以维持指定的数量.如果您不希望部署监视您的pod(例如,您的pod正在编写无法重新启动的非持久性数据,或者您的pod非常短暂),则可以直接创建一个pod create命令.
注意:我们建议使用"部署"来创建窗格.仅当您不想创建部署时,才应使用以下说明.
但这提出了什么kind:pod是有益的问题?你能以某种方式参考部署中的pod吗?我没有看到办法.看起来你使用pod获得的是一些额外的元数据,但没有任何部署选项,例如replica重启策略.没有持久数据的pod有什么用,可以在重启后幸存下来?我想我也可以创建一个带有部署的多容器pod.
1 - 我正在阅读文档,我对措辞有点困惑.它说:
ClusterIP:在集群内部IP上公开服务.选择此值使服务只能从群集中访问.这是默认的ServiceType
NodePort:在静态端口(NodePort)上的每个Node的IP上公开服务.将自动创建NodePort服务将路由到的ClusterIP服务.您可以通过请求从群集外部联系NodePort服务
<NodeIP>:<NodePort>.LoadBalancer:使用云提供商的负载均衡器在外部公开服务.将自动创建外部负载均衡器将路由到的NodePort和ClusterIP服务.
NodePort服务类型是否仍然使用ClusterIP但只是在一个不同的端口,该端口对外部客户端开放?所以在这种情况下是<NodeIP>:<NodePort>一样的<ClusterIP>:<NodePort>吗?
或者NodeIP实际上是运行时找到的IP kubectl get nodes而不是用于ClusterIP服务类型的虚拟IP?
2 - 同样在以下链接的图表中:
http://kubernetes.io/images/docs/services-iptables-overview.svg
有什么特别的原因Client是里面的Node?我认为Cluster在ClusterIP服务类型的情况下它需要在a里面.
如果为NodePort绘制了相同的图表,那么将客户端完全绘制在两者之外是否有效Node,Cluster或者我是否完全忽略了这一点?
我很担心Ingress和Load Balancer在Kubernetes中的角色.
据我所知,Ingress用于将来自互联网的传入流量映射到群集中运行的服务.
负载均衡器的作用是将流量转发到主机.在这方面,入口与负载平衡器有何不同?与Amazon ELB和ALB相比,kubernetes中的负载均衡器的概念是什么?
我对所有这些都比较陌生,但我在列出的技术中找到了清晰的画面.
虽然,所有这些都试图解决不同的问题,但也有共同点.我想了解哪些是常见的,哪些是不同的.少数人的组合很可能非常适合,如果是这样的话,他们是什么?
我列出了其中的一些以及问题,但如果有人详细列出所有问题并回答问题,那将会很棒.
Kubernetes vs Mesos:
这个链接
提供了很好的洞察力差异,但我无法理解为什么Kubernetes应该运行在Mesos之上.两个开源解决方案的结合更多的是什么?
Kubernetes vs Core-OS Fleet:
如果我使用kubernetes,是否需要车队?
Docker-Swarm如何适应上述所有内容?
Kubernetes被称为容器集群"scheduler/orchestrator",但我不知道这意味着什么.在阅读了Kubernetes网站和(模糊的)GitHub wiki之后,我能说的最好的是它以某种方式确定哪些虚拟机可用/能够运行你的Docker容器,然后在那里部署它们.但这只是我的猜测,我没有在他们的文档中看到任何支持这一点的具体措辞.
那么,什么是Kubernetes,准确,并有一些什么具体的,它解决的问题?