在Ubuntu 16.04上的kubernetes

我正在testing和学习kubernetes。 我使用Ubuntu 16.04,一直在寻找简单而直接的安装指南,但没有find一个…任何build议? 我的目标是能够在一台Ubuntu 16.04笔记本电脑上运行kubernetes作为主服务器,之后再设置第二台Ubuntu 16.04笔记本电脑,轻松join群集。 我不知道这是否可以实现与当前版本的kubernetes和16.04版本的ubuntu …任何指向指南或有用的资源将不胜感激…最好的问候。

您可以通过cluster / get-kube-local.sh检查启动单节点群集的方式 。 它向您展示了如何使用hyperkube来创build一个集群。

如果您想深入了解底层细节,另一种方法是查看hack / local-up-cluster.sh的内容。 这将分别引出每个组件,例如:

  • KUBE-API服务器
  • KUBE-代理
  • KUBE-DNS
  • KUBE-控制器经理

有人可能会使用相同的步骤来创build一个双节点群集,如您在您的问题中所述。

不知道这是否符合您的需求,但Minikube是国际海事组织在本地运行Kubernetes集群的方式: https : //github.com/kubernetes/minikube

除此之外:设置多节点集群并不是一件简单的事情,因为您必须设置覆盖networking,并且Kubernetes由许多组件组成。

Kubernetes文档中有一个指南,尤其是Ubuntu: https : //github.com/kubernetes/kubernetes.github.io/blob/release-1.4/docs/getting-started-guides/ubuntu.md

我遇到了一篇文章,在Ubuntu 16.04中安装Kubernetes。 https://www.techrepublic.com/article/how-to-quickly-install-kubernetes-on-ubuntu/

我build议你去最新的Kubernetes版本安装,因为新版本支持一些扩展,如部署,副本集(类似于复制控制器)。

请尝试https://github.com/nitinmidha/kube-cluster它使用kube v1.4.6和Ubuntu 16.04

这些是为了提供“Kubernetes HA(多主机,etcd集群,多任务)”的bash脚本。在Ubuntu 16.04上的安全(etcd和kube-api-server上的客户端authentication)

限制

  1. https:// master_ip / ui将无法正常工作,因为主服务器无法访问容器。 仪表板作为一个单独的内部服务托pipe在端口9090的小型节点上,使用仪表板服务IP地址。 如果需要,可以通过任何反向代理服务器(如NGINX)进行代理。 或者服务可以暴露NodePort,并可以在集群外部使用

  2. kube-apiserver在主机上显示端口8080为127.0.0.1接口。 一旦https://github.com/kubernetes/kubernetes/issues/13598被固定并可用, – – 安全端口将被设置为0。

  3. 法兰绒不保护数据包。 有一个PR( https://github.com/coreos/flannel/pull/290 )添加将encryption数据包的ipsec后端。 一旦此function可用,安装程序将被configuration为保护它。

  4. kubelet和kube-proxy不支持多个kube-apiserver地址。 所以我们仍然有一个单点故障,因为只能configuration一个IP地址。 要解决这个问题,我们可以公开外部负载均衡器下的所有主节点,然后指向该地址。 问题logging在kubernetes中。 https://github.com/kubernetes/kubernetes/issues/19152

特征

  1. 采用ETCD集群的多主集群。
  2. TLS通信和ETCD客户端与对等通信之间的客户端证书authentication。
  3. 所有kube组件之间的TLS通信和客户端证书authentication
  4. 法兰绒用于networking。 Flannel不支持TLS。
  5. 节点可以只有主人,只有工人和主 – 工人模式。 Master Only节点没有法兰绒/ kubelet和kube-proxy,所以无法到达pod。 另外命令'kubelet get nodes'不会显示这个节点。
  6. 可以select使用TLS连接到现有的ETCD群集。