0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Windows 10上创建单节点的Kubernetes实施示例

汽车玩家 来源:新钛云服 作者:新钛云服 2020-05-05 21:01 次阅读

本Kubernetes实施示例演示了如何在Windows 10上创建单节点群集,以启动并运行容器化的应用程序。

Kubernetes使开发人员和系统管理员可以快速部署应用程序并将其扩展到其需求,而无需停机。Kubernetes系统是高度可配置的,几乎所有内容都围绕四个重要概念:节点,pod,部署和服务。

准备好进入Kubernetes的世界了吗?这是开始的关键步骤和Kubernetes命令。

学习Kubernetes架构的基础知识

首先,了解Kubernetes系统的基础非常有用。运行容器的服务器及其内部的应用程序称为节点。主服务器控制,管理和配置这些节点服务器。主节点还管理Pod或一组驻留在节点上的一个或多个容器。

主服务器充当Kubernetes集群的控制平面。控制平面中各种组件的主要目的是维护所有Kubernetes对象的记录,并通过自动响应变化来连续管理集群的期望状态。

控制平面有四个主要组成部分:

Etcd:Kubernetes集群etcd的最基本组件是轻量级可用的配置存储。它可以跨多个Kubernetes节点设置。它的主要目的是存储Kubernetes集群中每个节点都可以访问的配置数据。

Kube-apiserver:这是用于kubectl等命令行工具的RESTful接口,为它们提供了与Kubernetes集群进行交互的方式。简单来说,它充当各种工具的管理点,以通过REST API控制和配置Kubernetes集群。

Kube控制器管理:该服务的主要作用是维护群集的状态,例如副本数。如果观察到所需状态有任何变化,则kube-controller-manager将运行所需的过程以确保满足所需状态。

Kube调度器:该组件的主要职责是根据配置,资源需求和特定于工作负载的需求计划群集工作负载。

节点服务器有多个组件,这些组件使主服务器可以使用它们。这些包括:

容器运行时:要运行封装在节点上存在的pod中的应用程序,我们需要一个轻量级的,隔离的操作环境:容器。容器运行时是一种工具,例如Docker,用于创建,部署和运行应用程序。

Kubelet:Kubelet是安装在节点上以与主节点进行通信并从其接收命令的代理或服务。它指导需要在节点上执行的操作,例如创建,缩放和删除容器。

Kube代理:此代理服务将请求中继到正确的容器并执行负载平衡。Kube-proxy还执行主机级子网划分,以确保其他组件可以访问服务。

Kubernetes实施步骤

在本教程中,我们将创建一个在Windows 10操作系统上运行的单节点群集。

要在Windows上安装和设置Kubernetes,请加载kubectl并安装minikube。Chocolatey软件包管理器在此过程中会提供帮助。命令行工具kubectl对Kubernetes集群运行命令,而minikube是使我们能够在机器上的VM中运行单节点集群的工具。输入命令:

choco install Kubernetes-cli minikube

这将返回如下所示的输出:

在Windows 10上创建单节点的Kubernetes实施示例

现在,运行以下命令并验证您的计算机上是否安装了kubectl:

kubectl.exe version --client

必须在以下屏幕截图中看到类似的输出:

在Windows 10上创建单节点的Kubernetes实施示例

接下来,在Kubernetes中启动一个工作机-或节点。它可以是物理机或虚拟机。为此,请使用以下命令启动minikube:

minikube start

这将返回如下所示的输出:

在Windows 10上创建单节点的Kubernetes实施示例

由于我们在Windows上安装Kubernetes,因此请使用Hyper-V启动VM并在VM上设置Kubernetes集群。

这样就完成了设置。

如何在Kubernetes中运行容器

要启动容器,请使用下面的Kubernetes命令创建部署。提供部署名称和要部署的容器映像。Kubernetes将自动选择Docker作为默认的容器运行时。在这里,我们使用将运行Nginx Web服务器的镜像:

kubectl.exe create deployment my-nginx --image nginx

创建部署后,Kubernetes将构建Pod来承载应用程序实例。

运行上一条命令后立即输入get pods,以在部署pod时捕获ContainerCreating状态:

kubectl.exe get pods

这将在几秒钟内完成,并且容器状态应更改为“正在运行”:

在Windows 10上创建单节点的Kubernetes实施示例

如下所示,将describe关键字与部署名称一起使用,以查看有关部署的更多详细信息

kubectl.exe get deployment

kubectl.exe describe deployment helloworld-nginx

这将返回结果,例如副本数,所需状态和时间戳记:

在Windows 10上创建单节点的Kubernetes实施示例

在此Kubernetes实施教程中,我们仅运行一个容器或Nginx服务器,但有时必须适应增加的工作量和流量。在这种情况下,请扩大应用程序实例的数量。这可以通过使用带有--replicas参数的kubectl规模部署来实现:

kubectl.exe scale deployment helloworld-nginx --replicas 4

检查部署。将观察到已部署了该应用程序实例的四个副本:

在Windows 10上创建单节点的Kubernetes实施示例

现在,检查Kubernetes pod;该节点上应运行四个容器:

在Windows 10上创建单节点的Kubernetes实施示例

启动应用程序并运行

现在,有一个应用程序在具有各自IP地址的多个容器中运行。接下来,将它们公开到群集之外,以便可以访问该应用程序:

Kubectl.exe expose deployment helloworld-nginx --port=80 --type=NodePort

通过kubectl get services命令进行验证。这将返回NodePort的服务类型,以在Kubernetes集群的每个节点上公开端口80。该服务是一个抽象层,基本上可以实现负载平衡,并在共享IP地址的群集中对一个以上的pod进行分组。

在Windows 10上创建单节点的Kubernetes实施示例

要在Web浏览器中打开此应用程序,请创建一个代理以将本地端口连接到群集端口,我们在上一步中使用NodePort服务公开了该端口:

kubectl.exe port-forward svc/helloworld-nginx 80:80

如下所示:

在Windows 10上创建单节点的Kubernetes实施示例

转到Web浏览器并打开http://127.0.0.1/或http://localhost/以查看在Kubernetes容器中部署的Nginx Web服务器的主页。

测试Kubernetes控制平面

最后,测试Kubernetes控制平面或主服务器是否能够维持节点服务器上运行的Pod的所需状态。要检查这一点,请使用以下命令来强制删除运行该应用程序实例的一个容器:

kubectl.exe delete pod helloworld-nginx-67bb76cf46-mks6j

识别出这种不希望的状态,Kubernetes将立即在容器中运行该应用程序的新实例:

在Windows 10上创建单节点的Kubernetes实施示例

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    3

    文章

    3438

    浏览量

    87141
  • kubernetes
    +关注

    关注

    0

    文章

    219

    浏览量

    8567
收藏 人收藏

    评论

    相关推荐

    记录一次解决RT-Thread创建基于ART-PI的示例项目可以下载但却无法debug的问题

    先随便创建一个基于模板工程的项目,发现可以debug,但基于示例工程创建的项目却发现不能debug。
    的头像 发表于 10-12 10:24 245次阅读
    记录一次解决RT-Thread<b class='flag-5'>创建</b>基于ART-PI的<b class='flag-5'>示例</b>项目可以下载但却无法debug的问题

    windows使用的ble调试工具

    分享一个windows使用的ble调试工具
    发表于 10-09 07:23

    如何在Linux中创建节点

    手把手教你在 Linux 中创建节点,使其可以进行 cat 和 echo 。 我们测试驱动加载是否正常工作,一般都会写应用程序去测试,这样驱动程序中需要实现 open、read 函数和 write
    的头像 发表于 10-07 15:25 559次阅读
    如何在Linux中<b class='flag-5'>创建</b><b class='flag-5'>节点</b>

    STM32WL使用STM32CubeMX创建LoRa节点应用

    电子发烧友网站提供《STM32WL使用STM32CubeMX创建LoRa节点应用.pdf》资料免费下载
    发表于 09-19 14:46 1次下载
    STM32WL使用STM32CubeMX<b class='flag-5'>创建</b>LoRa<b class='flag-5'>节点</b>应用

    用于实施受控制的近环BLDC发动机示例代码

    环控制器基于系统数学模型和当前状态生成控制信号。 系统将自动通过反馈信号修改为理想状态。 近身环系统强度优于开放环系统。 但是, 如果系统不需要高精度, 它可以开放环控制器执行 。 该示例代码
    发表于 09-01 06:46

    Kubernetes集群中如何选择工作节点

    简要概述: 本文讨论了在Kubernetes集群中选择较少数量的较大节点和选择较多数量的较小节点之间的利弊。
    的头像 发表于 08-28 15:46 345次阅读
    <b class='flag-5'>Kubernetes</b>集群中如何选择工作<b class='flag-5'>节点</b>

    Intel图形SR-IOV增强工具箱使用指南

    22.04 LTS主机上启用 Intel 图形 SR- IOV 的主机配置: 必须在嵌入处理器运行 :12th Gen Intel Core processors 注保存完成 3. 0 节后创建
    发表于 08-02 16:07

    如何将应用程序移植到运行在基于Arm的设备Windows

    本指南介绍如何将应用程序移植到运行在基于Arm的设备Windows。该指南首先回顾了一般指南,然后展示了不同框架的示例:Tweeten应用程序的Electron移植、StaffPad应用程序
    发表于 08-02 06:06

    Commvault:护航Kubernetes,不止Kubernetes

    Kubernetes已经不再是只存在于路线图中的未来产品。事实上,几乎所有(94%)已经采用容器的企业都在使用Kubernetes,大多数(86%)企业甚至认为它对他们的运营至关重要。这并不令人意外,Kubernetes正在帮助
    的头像 发表于 07-07 14:42 301次阅读

    如何在macOS的Eclipse中创建新项目?

    昨天我我的 macbook 安装了 esp-open-sdk,我想在 Eclipse 中开发和构建它,就像在 Windows 一样,使用 UDK(非官方开发工具包)和 make
    发表于 06-12 06:49

    Windows使用xtensa-lx106-elf和mingv,应该为编译做什么?

    我无法编译这个物联网示例​​。我 Windows 使用 xtensa-lx106-elf 和 mingv。我应该为编译做什么?
    发表于 06-09 06:11

    如何在Windows 10启动/设置ESP8266/ESP32 RTOS环境?

    Arduino IDE 上有一些关于 ESP8266/ESP32 的经验。 请告诉我,如何在 Windows 10 启动/设置 ESP8266/ESP32 RTOS 环境? 我
    发表于 05-19 10:33

    Kubernetes 监控利器功能特性

    Kubeshark 是专为 Kubernetes 设计的 API 流量分析器,它提供实时的 K8s 协议级别的可见性,可以捕获和监控所有在容器、Pod、节点和集群之间进出和流动的流量和负载。可以把它想象成专门针对 Kubernetes
    的头像 发表于 05-17 16:10 400次阅读
    <b class='flag-5'>Kubernetes</b> 监控利器功能特性

    Kubernetes特性有哪些?

    本文将介绍Kubernetes 的重要特性,这将有助于您更深入地了解 Kubernetes 的功能概念。
    的头像 发表于 05-12 16:16 655次阅读
    <b class='flag-5'>Kubernetes</b>特性有哪些?

    无法Linux使用Arduino上传,但可以Windows上传的原因?

    的消息......_____......_____......_____......_____......______ ....._____... 我有一个带有 Windows 10 的双启动系统。 当我启动到 Windows
    发表于 05-08 09:17