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

    文章

    3541

    浏览量

    88633
  • kubernetes
    +关注

    关注

    0

    文章

    224

    浏览量

    8713
收藏 人收藏

    评论

    相关推荐

    如何在windowsemulate不同操作系统

    一、虚拟化技术概述 虚拟化技术允许单个物理机器创建多个虚拟机,每个虚拟机都可以运行不同的操作系统。这使得我们可以Windows系统
    的头像 发表于 12-05 15:50 163次阅读

    Windows 10将于2025年终止免费更新,微软力推Windows 11

    ,届时Windows 10用户将无法再通过官方渠道获取这些关键服务。 尽管微软表示,停止更新后,用户的Windows 10电脑仍可继续正常
    的头像 发表于 11-05 10:35 364次阅读

    DM642 EVM的视频缩放示例

    电子发烧友网站提供《DM642 EVM的视频缩放示例.pdf》资料免费下载
    发表于 10-16 10:52 0次下载
    DM642 EVM<b class='flag-5'>上</b>的视频缩放<b class='flag-5'>示例</b>

    使用XDC工具创建TMS320DM6446音频编码示例

    电子发烧友网站提供《使用XDC工具创建TMS320DM6446音频编码示例.pdf》资料免费下载
    发表于 10-15 09:18 0次下载
    使用XDC工具<b class='flag-5'>创建</b>TMS320DM6446音频编码<b class='flag-5'>示例</b>

    Multi-Scaler IP的Linux示例以及Debug()

    本篇文章介绍了 ZCU106 创建 Video Multi-Scaler IP 的 AMD Vivado™ Design Tool 和 Petalinux 工程; ZCU106
    的头像 发表于 09-18 10:03 385次阅读
    Multi-Scaler IP的Linux<b class='flag-5'>示例</b>以及Debug(<b class='flag-5'>上</b>)

    使用Velero备份Kubernetes集群

    Velero 是 heptio 团队(被 VMWare 收购)开源的 Kubernetes 集群备份、迁移工具。
    的头像 发表于 08-05 15:43 349次阅读
    使用Velero备份<b class='flag-5'>Kubernetes</b>集群

    为什么无法ModusToolbox Eclipse IDE中创建OTA_over-Etherinet_STTPS示例

    使用\"lcs-manager-cli -- add-all\" 命令将所有示例拉到此处后,无法 ModusToolbox Eclipse IDE 中创建 OTA_over-Etherinet_STTPS
    发表于 07-24 06:48

    如何使用Kubeadm命令PetaExpress Ubuntu系统安装Kubernetes集群

    Kubernetes,通常缩写为K8s,是一个开源的容器编排平台,旨在自动化容器化应用的部署、扩展和管理。有了Kubernetes,您可以轻松地部署、更新和扩展应用,而无需担心底层基础设施。
    的头像 发表于 07-15 13:31 858次阅读
    如何使用Kubeadm命令<b class='flag-5'>在</b>PetaExpress Ubuntu系统<b class='flag-5'>上</b>安装<b class='flag-5'>Kubernetes</b>集群

     K8S学习教程一:使用PetaExpress云服务器安装Minikube 集群

    使得开发人员能够本地机器轻松创建一个节点Kubernetes 集群,从而方便开发、测
    的头像 发表于 07-01 15:41 367次阅读
     K8S学习教程一:使用PetaExpress云服务器安装Minikube 集群

    win11如何创建ftp?如何进行内网穿透

    Win11如何创建FTP Windows 11创建FTP服务器,需要按照以下步骤进行: 1、打开控制面板:在任务栏上点击搜索图标,输入“
    的头像 发表于 05-30 11:05 892次阅读

    Windows 10创建并运行AMD Vitis™视觉库示例

    本篇文章将演示创建一个使用 AMD Vitis™ 视觉库的 Vitis HLS 组件的全过程。此处使用的是 Vitis Unified IDE。如果您使用的是旧版 AMD Vitis Software Platform,大多数步骤相同。
    的头像 发表于 05-08 14:02 752次阅读
    <b class='flag-5'>在</b><b class='flag-5'>Windows</b> <b class='flag-5'>10</b><b class='flag-5'>上</b><b class='flag-5'>创建</b>并运行AMD Vitis™视觉库<b class='flag-5'>示例</b>

    NTDev实现Windows 10百秒快速安装

    开发者NTDev曾多次展现其对Windows 10Windows 11极致精简的技术实力,然而他们并非以实际应用为目标进行Windows系统的瘦身工作,而是以此验证他们的操作能力。
    的头像 发表于 02-19 14:22 852次阅读

    Kubernetes Gateway API攻略教程

    Kubernetes Gateway API 刚刚 GA,旨在改进将集群服务暴露给外部的过程。这其中包括一套更标准、更强大的 API资源,用于管理已暴露的服务。在这篇文章中,我将介绍 Gateway
    的头像 发表于 01-12 11:32 887次阅读
    <b class='flag-5'>Kubernetes</b> Gateway API攻略教程

    FPGA? 开搞!

    。 该工具链使用 Yosys 和 OpenFPGALoader 等开源工具,并与 Cologne Chip 合作开发实施和比特流生成工具。设计输入方面,工程师可以使用 Verilog、VHDL(通过
    发表于 01-11 00:52

    Kubernetes RBAC:掌握权限管理的精髓

    Kubernetes RBAC(Role-Based Access Control)是 Kubernetes 中一项关键的安全功能,它通过细粒度的权限控制机制,确保集群资源仅被授权的用户或服务账号访问。
    的头像 发表于 12-25 09:43 475次阅读