快捷导航
查看: 63|回复: 0

Kubernetes教程 – 基础知识入门

[复制链接]

管理员

发表于 2020-6-29 22:44 | 显示全部楼层 |阅读模式
Google创建了Kubernetes,以帮助开发人员更好地跨集群管理其容器化应用程序。尽管测试版于2014年发布,但Kubernetes的第一个稳定版本于2018年9月推出,以下将介绍这个流行的新工具的基本架构和用途。集群管理的必要性今天的互联网用户不能容忍停机时间,因此开发人员不得不在不中断服务的情况下找到执行维护和更新的方法。容器或包含应用程序运行所需的所有内容的隔离环境使开发人员可以轻松地动态编辑和部署应用程序。因此,容器化已成为打包,部署和更新分布式Web应用程序的首选方法。当然,跨多台计算机管理此类应用程序可能会很快变得复杂,这就是谷歌开始开发一个开源系统的原因,该系统可以简化跨多个主机的容器化应用程序的“部署,扩展和操作”。Kubernetes允许开发人员创建和管理物理和虚拟机的“集群”,以便通过共享网络协调合作。Kubernetes的优势Kubernetes减轻了在大规模生产环境中手动管理容器的负担,如果设置正确,Kubernetes可以通过自动化基础架构资源管理为开发人员节省时间和金钱。例如,当实例失败时,Kubernetes会自动重新创建,最终结果是更顺畅的用户体验和更少的应用停机时间,使用Kubernetes带来了学习曲线。Kubernetes集群Kubernetes集群是一个能够相互通信的容器网络,您可以拥有一个仅在一台计算机上运行的小型集群,或者您可以创建跨多台计算机运行的大型集群。集群中的计算机分配了特定角色,Kubernetes集群通常包括:主服务器主服务器是主要机器,负责促进集群的不同组件之间的通信,主服务器使用所谓的声明性计划,使用可用的基础架构最有效地运行应用程序。节点Kubernetes集群中的其他计算机充当在本地和外部资源的帮助下执行工作负载的节点,节点通过称为kubelet的代理与主节点通信,每个节点的配置数据存储在称为etcd的分布式键值存储中。一个容器运行时每个节点必须具有容器运行时(例如Docker)来处理来自主服务器的指令,Docker的工作当然是创建和管理容器。网络容器需要网络和IP地址以促进通信,Web开发人员可以选择几个Kubernetes网络。Kubernetes API最终用户可以通过主API与集群交互,开发人员使用名为kubectl的命令行工具控制其容器化应用程序。这些组件一起工作以确保应用程序的所需状态与群集的状态匹配。对象和工作量Kubernetes对象模型提供了原语,允许开发人员定义工作负载,促进扩展和与对象交互,这些是您将要处理的主要对象类型和工作负载:Pods容器本身包含在称为pods的对象中,Pod由一个或多个容器组成,这些容器协同工作并在同一节点上共享生命周期。例如,pod可以包含运行应用程序服务器的主容器和负责在检测到外部存储库更改时检索文件的帮助程序容器。Kubernetes集群将每个pod作为一个单元进行管理。复制控制器和集通过定义pod模板和创建副本以分配工作负载,复制控制器和复制集可以实现水平扩展。部署部署是开发人员直接管理pod的生命周期的高级对象,它们描述了应用程序的所需状态。部署修改后,Kubernetes会自动调整所有副本集,从而可以在不影响应用程序可用性的情况下执行更新。服务Pod只能在其Kubernetes集群中访问,因此要使您的应用程序可用于外部单词,pod必须作为服务公开。Kubernetes服务将相关的pod组合在一起,并将它们作为单个实体呈现给最终用户。Kubernetes入门在开始使用Kubernetes创建集群之前,必须先下载并安装几个东西,出于本教程的目的,我们需要:Minikube,一个轻量级的发行版,可让您在本地运行Kubernetes集群像VirtualBox这样的虚拟化软件Kubectl,Kubernetes的命令行客户端像Docker这样的容器运行时创建群集我们将使用Minikube创建一个小型虚拟机,并使用一个节点部署一个集群。1.安装VirtualBox下载VirtualBox并按照操作系统的安装说明进行操作,或者,您可以使用KVM2或您喜欢的任何管理程序。2安装KubectlKubectl是开发人员与集群交互的方式,您可以在Kubernetes网站上下载kubectl并查找安装说明。3.安装Docker请下载并安装适用于Windows的Docker或适用于Mac的Docker,Linux用户可以查阅Docker文档以查找其分发的安装说明。4.安装Minikube有关设置适用于Windows,Mac或Linux 的Minikube所需的一切,请参阅Minikube文档。5.运行Minikube完成所有设置后,创建群集只需要一个步骤,从命令行输入:minikube start现在,要确认您的集群正在运行,请输入:kubectl get nodes如果操作正确,您应该会看到有关群集的一些信息,例如其状态和版本号。配置Kubectl如果您按照上述步骤安装了Minikube,那么kubectl应该自动配置自己以访问您创建的集群,您可以使用以下命令进行确认:kubectl cluster-info~/.kube/config文件定义了kubectl可以访问的哪些API端点和集群,确定哪个集群kubectl与之交互称为“setting the context.”。要查看所有可用上下文,请使用以下命令:kubectl config use-context minikube您可以使用KUBECONFIG变量更改上下文,如果一切都配置正确,您应该能够使用以下命令在浏览器中打开Kubernetes仪表板:minikube dashboardKubernetes仪表板Kubernetes仪表板会告诉您需要了解的有关群集的所有信息,要确定仪表板是否已启动并运行,请输入以下命令:kubectl get pods -n kube-system寻找以kubernetes-dashboard,开头的条目,在您可以查看仪表板之前,必须运行以下命令来代理API:kubectl proxy现在,Kubernetes API将在http://localhost:8001,要在浏览器中打开信息中心,请访问以下网址:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/创建服务如前所述,pod最初只能通过集群中的内部IP地址访问,为了使您的容器可以在Kubernetes之外访问,必须将容器作为服务公开。Kubernetes服务基本上是一个内部负载平衡器,要公开pod,请使用以下kubectl命令:kubectl expose deployment hello-node –type=LoadBalancer–type=LoadBalancer标志让Kubernetes知道您希望向公众公开该服务,只需替换hello-node应用程序容器的名称即可,您可以使用以下命令查看新创建的服务:kubectl get services如果您的云提供商支持负载均衡器,则可能会为您提供外部IP地址来访问该服务。如果您使用的是Minikube,则–type=LoadBalancer标志可通过minikube服务命令访问您的服务。结论考虑到该工具的复杂性和实用性,很难相信Kubernetes是一个开源工具。不要被看似复杂的架构和令人困惑的拼写所吓倒,如果您正在跨多台机器开展大型项目,Kubernetes可以让您的工作更轻松。相关文章推荐OAuth 2.0:保护客户端凭据的节点API  保护服务器客户凭据可能很棘手,OAuth 2.0是将用户身份验证卸载到其他服务的绝佳方法,但如果没有用户进行身 […]...内联,外部和内部CSS样式之间的区别  有三种方法可以为网站添加CSS样式:可以使用内部CSS并在<head>HTML文档部分包含CSS规 […]...Flutter – 适用于Android和iOS的全新开源移动应用程序框架  Flutter是一款移动应用程序SDK,用于为Android和iOS构建高性能,高保真度的原生Android和 […]...APPIUM – 用于测试的自动化工具  Appium最初由Dan Cueller开发,用于利用Apple iOS的UI自动化框架对本机移动应用程序运行 […]...聊天机器人开发框架  Chatbot也被称为IM Bot,人工会话实体,谈话机器人和聊天机器人。它是一个自动化软件程序,通过音频聊天 […]...
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

966SEO学习网

GMT+8, 2020-10-30 09:05

Powered by SEO学习网  本站采用创作共用版权 CC BY-NC-SA 3.0 CN 许可协议,转载或复制请注明出处

© 2014-2019 投诉建议及友链申请联系邮箱:[email protected]

快速回复 返回顶部 返回列表