• 使用Vagrant创建和管理本地Kubernetes(K8s)集群的步骤是什么


    Alt

    🎈个人主页:程序员 小侯
    🎐CSDN新晋作者
    🎉欢迎 👍点赞✍评论⭐收藏
    ✨收录专栏:云计算
    ✨文章内容:Vagrant
    🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗

    在本文中,我们将探讨如何使用Vagrant来创建和管理一个本地的Kubernetes(K8s)集群。Vagrant是一个用于构建和管理虚拟化环境的开源工具,它可以让您轻松地创建和配置虚拟机,以便在本地进行开发、测试和学习。通过使用Vagrant,您可以在本地快速搭建Kubernetes集群,无需依赖云服务或物理硬件。
    在这里插入图片描述

    步骤1:准备环境

    在开始之前,请确保您已经安装了以下软件和工具:

    • VirtualBox: 用于虚拟机管理。
    • Vagrant: 用于创建和配置虚拟机环境。
    • kubectl: Kubernetes命令行工具,用于管理Kubernetes集群。

    步骤2:创建Vagrantfile

    首先,创建一个名为Vagrantfile的配置文件,用于描述您的虚拟机环境。以下是一个示例Vagrantfile的内容:

    Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu/bionic64"
      
      # 配置Master节点
      config.vm.define "master" do |master|
        master.vm.network "private_network", type: "dhcp"
        master.vm.hostname = "k8s-master"
        master.vm.provider "virtualbox" do |vb|
          vb.memory = "2048"
          vb.cpus = 2
        end
      end
    
      # 配置Worker节点
      config.vm.define "worker" do |worker|
        worker.vm.network "private_network", type: "dhcp"
        worker.vm.hostname = "k8s-worker"
        worker.vm.provider "virtualbox" do |vb|
          vb.memory = "2048"
          vb.cpus = 2
        end
      end
    end
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    在这个示例中,我们使用了ubuntu/bionic64的Vagrant镜像,并创建了一个Master节点和一个Worker节点。

    步骤3:启动虚拟机

    在配置文件创建好后,使用以下命令启动虚拟机:

    vagrant up
    
    • 1

    这将会根据Vagrantfile中的配置启动虚拟机,并分配私有IP地址。

    步骤4:安装Kubernetes

    一旦虚拟机启动完成,您可以通过SSH登录到Master节点,并安装Kubernetes。在Master节点上执行以下命令:

    # 安装kubeadm、kubelet和kubectl
    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 -
    cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
    deb https://apt.kubernetes.io/ kubernetes-xenial main
    EOF
    sudo apt-get update
    sudo apt-get install -y kubelet kubeadm kubectl
    
    # 初始化Kubernetes集群
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    此命令将初始化Kubernetes Master节点。在初始化过程中,您将看到一些输出,包括一个kubeadm join命令,用于将Worker节点加入集群。请记下这个命令,稍后会用到。

    步骤5:配置Kubernetes网络插件

    Kubernetes需要一个网络插件来实现Pod之间的通信。我们将使用Flannel网络插件,执行以下命令在Master节点上配置Flannel:

    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
    • 1

    步骤6:将Worker节点加入集群

    回到Vagrant虚拟机,登录到Worker节点,并运行之前保存的kubeadm join命令,将Worker节点加入集群。在Worker节点上执行:

    sudo kubeadm join <Master节点的IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
    
    • 1

    步骤7:验证集群

    在Master节点上,运行以下命令来验证Kubernetes集群的状态:

    kubectl get nodes
    
    • 1

    如果一切正常,您应该看到Master节点和Worker节点都处于"Ready"状态。

    步骤8:部署应用

    现在,您可以在Kubernetes集群上部署应用程序。以下是一个示例Nginx应用的Deployment配置:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
         
    
     labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
            ports:
            - containerPort: 80
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    使用kubectl apply -f命令将这个配置文件部署到Kubernetes集群中。

    步骤9:访问应用

    要访问部署的Nginx应用程序,您需要创建一个Service来公开应用程序。以下是一个示例Service的配置:

    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
    spec:
      selector:
        app: nginx
      ports:
        - protocol: TCP
          port: 80
          targetPort: 80
      type: NodePort
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    使用kubectl apply -f命令将这个配置文件部署到Kubernetes集群中。然后,您可以通过Worker节点的IP地址和NodePort访问Nginx应用程序。

    步骤10:清理资源

    当您完成测试后,可以使用以下命令来销毁Vagrant虚拟机和相关资源:

    vagrant destroy -f
    
    • 1

    结论

    通过本文,您学会了如何使用Vagrant创建和管理一个本地的Kubernetes集群。这个本地集群可以用于开发、测试和学习Kubernetes,而无需云服务或物理硬件。使用Vagrant,您可以轻松地搭建和销毁Kubernetes环境,为学习和实验提供了便利。希望这篇文章能帮助您开始使用Vagrant搭建本地Kubernetes集群。

    后记 👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

  • 相关阅读:
    springMVC 面试题
    electron打包ffi-napi报错 npm ERR! gyp reason: read ECONNRESET
    【OpenSSL】HMAC消息认证码
    Redis 数据类型之列表
    OpenCV级联分类器识别车辆实践笔记
    arcgis(shp)注记转CAD(dwg)文字
    CSP-J第二轮试题-2021年-1.2题
    思辨:移动开发的未来在哪?
    WPF Image设置为圆形,并有折叠
    如何使用ArcGIS Pro制作标准地图样式国界
  • 原文地址:https://blog.csdn.net/weixin_65175398/article/details/132759303