如何在本地网络中使用三台机器使用Kubernetes部署微服务应用程序?

时间:2019-10-22 21:17:01

标签: kubernetes minikube

由于我是Kubernetes的新手,所以我仍然没有弄清楚如何使用一个或多个物理机器在本地网络上部署应用程序。 通常,互联网上的教程会描述使用minikube的情况,但这仅用于本地机器测试,不是吗?或者在Google等云平台上执行部署的情况。
我真的很感谢从哪里开始的一些支持?就我而言,我仅需要在机器上安装Kubernetes?这是一项琐碎的任务吗?

4 个答案:

答案 0 :(得分:0)

一种安装Kubernetes的方法是通过kubeadm

我已经用自己的VM完成了此操作。但也应该适用于您的物理机器。

答案 1 :(得分:0)

您可以使用kubeadmhere是可以帮助您安装它的文档。

每个服务器都需要安装kubeadmkubeletkubectl

master node上,您将执行kubeadm init,一旦整个过程完成,它将为您提供输出,您可以运行该输出来添加worker nodes。 当然,这些服务器需要在您的网络上相互查看。

还有其他安装Kubernetes的选项。例如,使用kopskubespray

答案 2 :(得分:0)

来自https://kubernetes.io/docs/setup/learning-environment/minikube/

  

Minikube是一种可以轻松在本地运行Kubernetes的工具。   Minikube在虚拟机内部运行单节点Kubernetes集群   笔记本电脑上的机器(VM),供希望试用Kubernetes或   每天进行开发

如果要包括自己的集群,则有很多选择,包括kubeadmkubespray

我个人使用Vagrant和Ansible通过kubeadm建立了一个本地Kubernetes集群-有一个很好的教程here ...这里是my implementation:)

答案 3 :(得分:0)

Kubeadm允许您使用任何运行Docker的计算机创建集群。

本指南将帮助您创建具有1个主节点和1个工作节点的第一个集群。 (基于Debian)

在所有两台计算机上执行以下命令:

Installing Docker来自官方资料库

$ sudo apt-get update
$ sudo apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")    $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
$ sudo groupadd docker
$ sudo usermod -aG docker $USER

从官方存储库安装kubeadm,kubectl和kubelet

$ sudo apt-get update && sudo apt-get install -y apt-transport-https curl
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

$ sudo su -c "cat > /etc/apt/sources.list.d/kubernetes.list <<EOF
  deb https://apt.kubernetes.io/ kubernetes-xenial main
  EOF"

$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl

仅在主节点上执行以下命令

初始化集群

$ sudo kubeadm init

初始化完成后,kubeadm将为您提供将工作程序添加到集群的命令。保存此命令以备后用。

示例

kubeadm join 10.128.0.17:6443 --token 27evky.hoel95h16poqici6 \
  --discovery-token-ca-cert-hash sha256:521f69cb935951bbfee142432108caeaeaf1682d8647208ba2f558624890ab63 

kubeadm init命令完成后,运行以下命令以开始使用新集群

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

您的主服务器尚未准备好,我们需要创建一个cni网络(You can choose different CNIs

$ kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

检查您的主节点是否准备就绪。启动所有依赖项需要一段时间     $ kubectl获取节点

示例

user@kubemaster:~$ kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
kubemaster   NotReady   master   32s   v1.16.2

要查看有关您的节点的更多详细信息,请执行以下操作:

$ kubectl describe node <NODENAME>

当主节点准备就绪时,您可以在工作节点上继续运行kubectl join命令(先前保存):

$ sudo kubeadm join 10.128.0.17:6443 --token 27evky.hoel95h16poqici6 --discovery-token-ca-cert-hash sha256:521f69cb935951bbfee142432108caeaeaf1682d8647208ba2f558624890ab63

检查工作节点是否准备就绪(命令必须在主节点上执行)

$ kubectl get nodes

如果您想拥有更多工人,只需对新工人重复kubectl join命令。