ubuntu上的kubernetes 16.04
我正在测试和学习kubernetes。我使用的是Ubuntu 16.04,一直在寻找简单直接的安装指南,但没有找到一个...任何建议?我的目标是能够在一台Ubuntu 16.04笔记本电脑上运行kubernetes作为主服务器,并且稍后再设置第二台Ubuntu 16.04笔记本电脑,轻松加入群集。我想知道这是否可以通过当前版本的kubernetes和16.04版本的ubuntu实现...任何指向指南或有用资源的指针都将被赞赏...最好的问候。ubuntu上的kubernetes 16.04
不知道这是否符合你的需求,但Minikube是海事组织在本地运行一个Kubernetes集群fastes方式:https://github.com/kubernetes/minikube
除此之外:建立一个多节点集群不是简单的任务,因为你必须设置覆盖网络,而Kubernetes包含许多组件。
可以使用flannel和etcd解决网络和服务发现问题吗?我看过CoreOS和其他主要云的教程提供者,但不是Ubuntu的16.04 ... – user3669547
我目前正在阅读本指南:http://kubernetes.io/docs/getting-started-guides/docker-multinode/ – user3669547
这对我来说看起来不错。 – svenwltr
您可以检查通过cluster/get-kube-local.sh调出单节点群集的方式。它向您展示了如何使用hyperkube启动集群。
如果你想进入基础细节,另一种方法是检查出hack/local-up-cluster.sh的内容。这分别带来了每个组件,如:
- KUBE-API服务器
- KUBE代理
- KUBE-DNS
- KUBE控制器的管理器
一个可能使用您的问题中所述的创建双节点群集的步骤相同。
cluster /get-kube-local.sh未完成...它卡在以下任务中:检测到现有的kubectl二进制文件。跳过下载。 创建本地集群: \t启动kubelet ... SUCCESS \t等待主组件启动................................... .................................................. .................................................. .................................................. ..^ – user3669547
不确定为什么没有创建群集。我在ubuntu 16.04上运行脚本...我想知道脚本中定义的localhost:8080是否被分配了特定的端口...我检查了没有其他容器使用相同的端口... – user3669547
@ user3669547您可能想检查'kubectl版本'。如果它返回一个服务器版本字符串,则服务器启动。它可能已经开始运行。有时会发生这样的情况,即它在等待组件已经启动它们时才开始。您可以通过运行docker ps来查看它是否启动了正确的容器。 –
有一个在Kubernetes文档的指导尤其是对Ubuntu的:https://github.com/kubernetes/kubernetes.github.io/blob/release-1.4/docs/getting-started-guides/ubuntu.md
该指南表示它已在Ubuntu 14.0上测试过,但无法在使用systemd的ubuntu 15.00上运行。我明白,Ubuntu 16.04也使用systemd(而不是新贵)。这就是为什么我没有尝试遵循kubernetes文档中提供的指南的原因......除非有人告诉我如何使系统适应指令......哪里以及要改变什么......这并不明确在这个阶段。感谢您的建议。 – user3669547
这不是现在可用.. – karthikeayan
我更新了链接 – svenwltr
请尝试https://github.com/nitinmidha/kube-cluster它与KUBE v1.4.6测试和Ubuntu 16.04
这些是用提供“Kubernetes HA(的bash脚本多主站与ETCD聚类,多仆从)安全(客户端认证上ETCD和KUBE-API服务器)群集在Ubuntu 16.04"
限制
https://master_ip/ui将无法正常工作,因为主站无法到达集装箱。仪表板作为单独的内部服务托管在端口9090上的小型节点上,使用仪表板服务IP地址。如果需要,可以通过任何反向代理服务器(如NGINX)进行代理。或服务可以暴露节点端口并且可以在群集外部可用
kube-apiserver公开端口8080用于主节点上的127.0.0.1接口。一旦https://github.com/kubernetes/kubernetes/issues/13598被固定并且可用, - 安全端口将被设置为0.
法兰绒不保护数据包。有一个PR(https://github.com/coreos/flannel/pull/290)添加将加密数据包的ipsec后端。一旦该功能可用,安装程序将被配置为保护它。
kubelet和kube-proxy不支持多个kube-apiserver地址。所以我们仍然有单点故障,因为只能配置一个IP地址。要解决此问题,我们可以在外部负载均衡器下公开所有主节点,然后指向该地址。问题记录在kubernetes中。 https://github.com/kubernetes/kubernetes/issues/19152
特点
- 多主站集群与集群ETCD。
- ETCD客户端和对等通信之间的TLS通信和客户端证书认证。
- 所有kube组件之间的TLS通信和客户端证书认证
- 法兰绒用于联网。 Flannel不支持TLS。
- 节点可以是仅限主人,仅限工作人员和主 - 辅助工模式。 Master Only节点不具有法兰绒/ kubelet和kube-proxy,因此无法触及到豆荚。另外命令'kubelet get nodes'不会显示这个节点。
- 可选择使用TLS连接到现有的ETCD群集。
谢谢你的评论,答案已被更新.... –
我遇到了一篇文章,在Ubuntu 16.04中安装Kubernetes。 https://www.techrepublic.com/article/how-to-quickly-install-kubernetes-on-ubuntu/
我建议您使用最新的Kubernetes版本安装,因为新版本支持一些扩展,如部署,副本集(类似于复制控制器)。
您想了解如何使用Kubernetes群集或如何部署?这些是非常不同的任务。 – svenwltr
我正在学习如何安装所有部件,以便拥有kubernetes集群并在kubernetes集群上运行docker应用程序。我想首先建立两个节点(在我的情况下,两个Ubuntu 16.04笔记本电脑......这是可能的吗?然后我会试着看看是否可以用我的两个水滴在数字海洋上建立一个kubernetes群集...或者如何让运行ubuntu 16.04的两个水滴连接形成kubernetes集群并运行docker应用程序... – user3669547