基于PC的多个VM&与Kubernetes的码头集装箱 - 超越minikube

时间:2017-07-28 19:30:07

标签: docker kubernetes minikube

想运行一个容器集群,分布在2个虚拟机之间,两个虚拟机都运行在同一台主机(我的电脑,运行Windows 7 Pro,64位)上,由Kubernetes轮流管理。容器必须通过网络,它们之间以及“请求生成器”和“响应生成器”等应用程序交换消息,这些应用程序本机运行在同一主机甚至其他主机上。

现在Minikube只配置了1个节点(VM)。还有什么其他方法可以启用至少2个虚拟机?

以下是what I want to achieve

2 个答案:

答案 0 :(得分:1)

我没有看到在minikube中创建两个VM的选项。但是您可以使用VirtualBox并使用Linux OS创建两个VM,然后创建kubernets集群。

我使用centos 7进行此设置。以下是您可以采取的几个步骤。

  1. 创建VM时,请选择桥接网络选项。
  2. 选择静态IP
  3. 使用kubeadm配置群集。
  4. 以下是kubeadm的步骤。 https://kubernetes.io/docs/setup/independent/install-kubeadm/

答案 1 :(得分:0)

您可以使用多遍创建k3s集群:

# Install multipass
sudo snap install multipass --classic

# Delete vms if they exists
multipass delete master
multipass delete node1
multipass delete node2
multipass purge 

# Launch nodes
multipass launch -n master & multipass launch -n node1 & multipass launch -n node2

# Download, transfer and run master install script
curl -sfL https://get.k3s.io > k3s.sh
multipass transfer k3s.sh master:
multipass exec master bash k3s.sh

# Get k8s joining token from master
multipass exec master sudo cat /var/lib/rancher/k3s/server/node-token > token

# Get master ip
multipass ls | grep master | awk '{print $3}' > masterip

# Create script to join to master node
echo 'curl -sfL https://get.k3s.io | K3S_URL=https://'$(cat masterip):6443' K3S_TOKEN='$(cat token) sh - > node_join.sh

# Trasnfer scripts to node vms
multipass transfer node_join.sh node1: 
multipass transfer node_join.sh node2:

# Run script on node vms
multipass exec node1 bash node_join.sh & multipass exec node2 bash node_join.sh

# Get kubectl configuration file
multipass exec master sudo cat /etc/rancher/k3s/k3s.yaml > k3s.yaml
# Use ip of master in config
cat k3s.yaml | sed "s/127.0.0.1/$(cat masterip)/" >> k3s.yaml

# Confirm that we can see nodes
kubectl get nodes --kubeconfig k3s.yaml