如何开启Kubernetes之旅

简介: 本文讲的是如何开启Kubernetes之旅【译者的话】这篇文章由浅入深地介绍了如何开始Kubernetes学习,以及如何基于Kubernetes部署应用。作者给出了很多非常好的建议,指导读者掌握围绕Kubernetes的各个概念和相关技能,为学习Kubernetes指明了方向。
本文讲的是如何开启Kubernetes之旅【译者的话】这篇文章由浅入深地介绍了如何开始Kubernetes学习,以及如何基于Kubernetes部署应用。作者给出了很多非常好的建议,指导读者掌握围绕Kubernetes的各个概念和相关技能,为学习Kubernetes指明了方向。

从Hello Minikube到Kubernetes Anywhere,再到微服务示例应用,学习谷歌容器编排工具的途径比比皆是。
每一次的创新都带来一些新的麻烦。容器使得应用的打包和运行更加便捷,但是管理大规模容器依然是一个挑战。

Kubernetes是谷歌公司内部为解决这个问题而开发的产品,它提供了一个单一的框架来管理在整个集群中运行的容器。该产品提供的服务主要集中在“编排”上,但也涵盖了许多方面:容器调度、容器之间的服务发现、跨系统的负载平衡、滚动更新/回滚、高可用性等。

在这个指南中,我们将介绍创建Kubernetes集群并发布容器应用的基本知识。这并不是要介绍Kubernetes的概念,而是通过简单示例来展示这些概念如何在运行Kubernetes的过程中结合在一起的。

选择一个Kubernetes主机

Kubernetes是为了管理Linux容器而诞生的。但是,从Kubernetes 1.5起,尽管Kubernetes控制面板必须继续在Linux上运行,但Kubernetes已经开始支持Windows Server Containers。当然,借助虚拟化,您可以在任何平台上开始使用Kubernetes。

如果您选择在自己的硬件或虚拟机上运行Kubernetes,一个常见的方法是获取绑定Kubernetes的Linux发行版。这样就不需要设置Kubernetes,不仅省去了安装和部署过程,甚至配置和管理的过程也不需要了。

CoreOS Tectonic 就是这样的一个发行版,专注于容器和Kubernetes,几乎完全排除其他任何东西。 RancherOS 采取类似的做法,同样自动化执行大部分的设置。两者都可以安装在各种环境中:裸机,Amazon AWS VMs,Google Compute Engine,OpenStack等。

另一种方法是在常规的Linux发行版上运行Kubernetes,尽管通常会带来更多的管理开销和手动调整。例如,红帽企业Linux在其软件库中有Kubernetes,但即使是Red Hat,也建议仅用于测试和实验。建议红帽用户通过OpenShift PaaS使用Kubernetes,而不是自己动手从头搭建,OpenShift现在使用Kubernetes作为自己的容器编排系统。许多传统的Linux发行版提供了设置Kubernetes和其他大型软件堆栈的特殊工具。例如, Ubuntu提供了一种名为conjur-up的工具 ,可用于 在云和裸机实例上部署Kubernetes的上游版本 。

选择一种托管Kubernetes的云

尽管在谷歌云平台(GCP)上,Kubernetes已经全面支持了,但是在很多其他云平台上,Kubernetes是否支持依然是一个焦点问题。GCP提供了运行Kubernetes的两种主要方式。最方便和集成最好的方式是通过Google容器引擎,它允许您运行Kubernetes的命令行工具来管理创建的集群。或者,您可以使用Google Compute Engine来创建计算集群并手动部署Kubernetes。这种方法对用户的技能要求比较高,但是允许用户使用Google Container Engine尚未支持的个性化定义。如果您刚开始接触容器,最好坚持使用容器引擎。经过一段时间之后,您对Container Engine有了一定的了解,就可以尝试一些更高级的内容,比如您自己选择特定版本的Kubernetes进行部署,或者部署运行Kubernetes发行版的虚拟机。

亚马逊EC2有容器的原生支持,但没有原生支持Kubernetes作为容器编排系统。在AWS运行Kubernetes类似于使用谷歌计算引擎:配置一个计算集群,然后手动部署Kubernetes。

许多Kubernetes的发行版都有如何在AWS部署的详细说明。例如,CoreOS Tectonic,有一个 图形化的安装程序 ,同时还 支持 Terraform 基础设施配置工具。此外, Kubernetes kops 工具可以被用来配置一组AWS上的虚拟机集群(通常使用Debian Linux,但是其他的Linux版本也部分支持)。

微软Azure通过 Azure Container Service 来支持Kubernetes。然而,从将Kubernetes作为一个托管在Azure上的服务这个角度来说,这不是很“原生”的支持。相反,Kubernetes是由一个Azure资源管理模板部署的。Azure对于其他的容器编排系统(比如Docker Swarm和Mesosphere DC/OS)的支持也是这种思路实现的。如果您在这里提到的任何其他的云中部署Kubernetes,并且希望完全控制它,在Azure虚拟机上安装一个Kubernetes的核心版永远是简单可行的办法。

在各种环境(云端或其他方式)中快速配置一个基础Kubernetes集群的方式就是使用名为Kubernetes Anywhere的项目。此脚本适用于Google Compute Engine,Microsoft Azure和VMware vSphere(需要vCenter)。在每种情况下,它为启动过程提供了一定程度的自动化。

您自己的小部分Kubernetes节点

如果你只是在一个像开发机器这样的本地环境中运行Kubernetes,而且你不需要整个Kubernetes全部能力,那么有几种方法可以设置“刚好足够”的Kubernetes来进行使用。

其中一种方式是使用由Kubernetes开发团队本身提供的 MiniKube 。运行它,您会得到一个单节点Kubernetes集群部署在您选择的虚拟主机上。minikube有几个前提,如kubectl命令行接口和虚拟化环境如VirtualBox,但那些都有现成的二进制,支持MacOS,Linux和Windows。

对于MacOS上的CoreOS用户,有 Kubernetes Solo 。它运行在一个CoreOS虚拟机上,提供了一个状态栏应用程序实现快速管理。Solo也包括Kubernetes包管理程序Helm(通常是Helm下一级),因此基于Kubernetes的应用程序包更容易获取和设置。

玩转您的容器集群

当您的Kubernetes运行起来之后,您就可以运行和管理容器了。通过部署和管理基于很多容器的应用示例的方式,您可以轻松地熟悉容器的操作。以一个现有的基于容器的应用程序demo为例,自己组装它,看看它是如何组成的,部署它,然后逐步修改它,直到满足您的预期。如果您选择通过minikube找到立足点,您可以使用 Hello Minikube教程 创建Docker容器,将这个运行简单的Node.js应用的容器托管在单节点Kubernetes,以此来演示集群安装和应用部署。一旦您对这些都熟悉了,您就可以替换成自己的容器,并做一些实践性部署。

下一步是部署一个 示例应用程序 ,这个程序类似您可能在生产环境中使用的应用。通过这个应用您可以进一步熟悉Kubernetes的一些高级概念,比如pods(一个或多个容器,包括一个应用程序),service(一组逻辑的Pod),replica sets(提供应用在机器故障时的修复机制)和deployment(应用程序的版本)。揭开 WordPress/MySQL示例应用程序 的神秘面纱,例如,你看到的将不仅仅是如何将应用部署到Kubernetes,并让这些应用正常运行。您也将看到Kubernets应用涉及的很多概念的实现细节,而这些应用都是满足生产环境要求的。您将学习如何设置 持久卷 以保存应用程序的状态,如何将Pod暴露给彼此,以及如何通过 services 与外部世界连在一起,以及如何将应用程序密码和API密钥存储为 secrets 等等。

Weaveworks有一个示例应用程序, 袜子商店 ,展示了微服务模式如何用来组合Kubernetes中的应用。袜子商店对于熟悉底层技术(比如Node.js,Go kit和Spring Boot)的人来说是最有利的,但主旨超越了特定的框架,而是说明云原生技术。

如果您看了一眼WordPress/MySQL的应用,并想创建一个运行在Kubernetes上的应用来满足您的需求,这种想法基本上是对的。Kubernetes有一个应用程序定义的系统称为 Helm ,它提供了一种打包、版本管理和共享Kubernetes应用的机制。一些主流的应用程序(GitLab,WordPress)和构建应用程序的模块(MySQL、NGINX)将Helm作为一站式直通 kubeapps 门户的最佳实践。

深入探索Kubernetes

Kubernetes通过强大的抽象能力简化了容器的管理,比如Pod和Service,同事通过label和namespace机制提供了很大的灵活性,label和 namespace 都可以用来隔离pod,services和deployments(比如开发环境、过渡环境和生产环境负载)。

如果您选择上面的示例的一个,并在多个命名空间中创建不同的实例,那么可以对独立于其他命名空间的组件进行更改。您可以使用deployments,以允许这些更新在给定的命名空间中的 多个pod之间滚动进行 。

比这种练习更进一步的是学习Kubernetes本身如何能够被管理基础设施的工具所驱动。以Puppet为例,有一个用于 创建和操纵Kubernetes资源的模块 ,但是HashiCorp’s Terraform很早就有支持,但是支持方式 演变成将Kubernetes作为一种资源 进行管理。如果您打算使用这样的资源管理器,请注意不同的工具可能会给表带来不同的预期结果。以Puppet and Terraform为例,默认分别使用 可变的和不可变的基础设施 。这些哲学层次和行为的差异,如何或轻松,或困难地创建您所需要的Kubernetes。

这个故事,“如何开启Kubernetes之旅”最初发表在 InfoWorld 。

原文链接:How to get started with Kubernetes (翻译:付辉)

原文发布时间为:2017-07-19

本文作者:付辉

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:如何开启Kubernetes之旅

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
云安全 安全 网络安全
|
6天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
1964 1
|
12天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
1997 39
|
9天前
|
Web App开发 人工智能 前端开发
2026 年 AI 浏览器怎么选?Ego Lite、Tabbit、Chrome DevTools MCP 深度对比,开发者到底该用哪个?
2026年AI浏览器选型指南:Ego Lite专注多Agent协同(Mac优先),Tabbit国产首选,原生支持Windows与Codex控制;Chrome DevTools MCP非浏览器而是开发者利器,深度集成Console/Network/Performance调试能力,让AI真正“看懂并验证”前端代码。
1311 3
|
13天前
|
JSON 程序员 数据格式
最新版Notepad++下载、安装、配置保姆级教程(附官网安装包)
Notepad++ 是一款免费开源、轻量快速的 Windows 文本编辑器,支持多标签、语法高亮、代码折叠与宏录制,体积小、启动快、资源占用低,兼容 x64/x32/ARM 架构,是程序员和文字工作者的高效利器。
2355 0
|
6天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
13天前
|
安全 Linux 芯片
【万字长文】Ollama下载、安装、配置、使用保姆级教程(2026最新图解)
Ollama 是一款免费开源的本地大模型运行工具,支持 DeepSeek、Qwen 等主流模型,一条命令即可下载运行。2026 最新版 v0.35.1 官方安装包(1.47GB)已提供国内直连下载,纯本地、离线可用、无广告、无隐私泄露风险。
1213 4
|
6天前
|
开发者 索引
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
Open Plugin Market 是一个开放插件索引平台,收录800+优质DSH插件,支持分类浏览、智能推荐与随机发现。无需安装市场,粘贴索引地址即可一键接入,网页版直访 dshopen.org,助力小开发者被看见。(239字)
1303 1
DeepSeekHarness大肥鱼自带插件市场了?加个地址就能用
|
5天前
|
安全 程序员 应用服务中间件
PHP 被曝两大致命漏洞,请所有程序员抓紧做这件事!
PHP 官方发布了紧急安全更新,一口气修复了两个严重漏洞。如果网站和服务器用了 PHP 应该怎么处理?漏洞的原理是什么?本文给你讲清楚
600 0

热门文章

最新文章