简体   繁体   English

基于 PC 的多个 VM 和 Docker 容器与 Kubernetes - 超越 minikube

[英]PC based multiple VM & docker containers with Kubernetes - going beyond minikube

Would like run a cluster of containers, distributed between 2 VMs, both running on same host (my PC, running Windows 7 Pro, 64-bit), managed in turn by Kubernetes.想运行一个容器集群,分布在 2 个虚拟机之间,都在同一主机上运行(我的 PC,运行 Windows 7 Pro,64 位),依次由 Kubernetes 管理。 The containers must exchange messages over network, between themselves, and also applications like 'Request generator' and 'Response generator', running natively on same host or even other host.容器必须通过网络在它们之间以及在同一主机甚至其他主机上本地运行的“请求生成器”和“响应生成器”等应用程序之间交换消息。

Now Minikube is configured with only 1 node (VM).现在 Minikube 只配置了 1 个节点(VM)。 Anything else that can be done to enable at least 2 VMs?还可以做些什么来启用至少 2 个 VM?

Here is这是我想要达到的目标 : :

I didn't see the option to create two VM in minikube.我没有看到在 minikube 中创建两个 VM 的选项。 But you can use VirtualBox and create two VMs with Linux OS then create the kubernets cluster.但是您可以使用 VirtualBox 并使用 Linux 操作系统创建两个虚拟机,然后创建 kubernets 集群。

I used centos 7 for this setup.我使用 centos 7 进行此设置。 Here are the few steps you can.以下是您可以执行的几个步骤。

  1. When you create the VM select the bridged network option.创建 VM 时选择桥接网络选项。
  2. select the static IP选择静态IP
  3. Use kubeadm to configure the cluster.使用 kubeadm 配置集群。
  4. Here is the steps for kubeadm.这是 kubeadm 的步骤。 https://kubernetes.io/docs/setup/independent/install-kubeadm/ https://kubernetes.io/docs/setup/independent/install-kubeadm/

You could use multipass to create a k3s cluster:您可以使用 multipass 创建一个 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 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM