写点什么

在你的电脑上运行 Kubernetes

  • 2019-10-29
  • 本文字数:3498 字

    阅读完需:约 11 分钟

在你的电脑上运行Kubernetes

近期对 550 名 Cloud Native Computing Foundation (云原生计算基金会) 成员的调查证实:Kubernetes 是编配平台的首选。此外,调查再次证实,Amazon Web Services 仍然是在云中部署 Kubernetes 集群的首选。kubernetes-aws.io 列出了您可以在 AWS 上轻松创建 Kubernetes 集群的各种方法。


在开发过程中,您不妨在本地机器上运行 Kubernetes,以便在本地启动和调试应用程序。您对本地版本感到满意后,便可在 AWS 上运行的集群上部署完全相同的应用程序。


本文提供了两种在 Mac OS X 机器本地运行 Kubernetes 的方法:常用的 MinikubeDocker for Mac 中新引入的 Kubernetes 支持。其他平台的操作指南可登录 Minikube 和 Docker 网站查找。


我们开始吧!

安装 kubectl

Kubectl 是对 Kubernetes 集群运行命令的 CLI 命令行界面 (CLI)。首先安装:


在 Mac OS X 上安装 kubectl:


brew install kubernetes-cli
复制代码


如果已经安装 kubectl,您可能需要对其进行升级:


brew upgrade kubernetes-cli
复制代码


打印版本信息:


$ kubectl version --client --short=trueClient Version: v1.8.5
复制代码


默认情况下,kubectl version 命令会打印客户端和服务器版本。 --client 确保只打印客户端版本,因为此时没有正在运行的集群。 --short 选项允许您仅打印版本号。


现在已经安装了 kubectl,我们来看一下这两种可以在本地机器上运行 Kubernetes 集群的方法。

使用 Minikube 设置 Kubernetes 集群

在笔记本电脑上,Minikube 在虚拟机 (VM) 内部运行单节点 Kubernetes 集群,为有兴趣使用 Kubernetes 的用户提供本地开发和测试环境。


Minikube VM 使用 VirtualBox 进行预置。如果您的机器上尚未安装 VirtualBox,则需要先执行以下操作:


brew cask install virtualbox
复制代码


现在安装 Minikube:


brew cask install minikube
复制代码


如果已经安装了 Minikube,可以使用以下命令进行升级:


brew cask reinstall minikube
复制代码


查看 Minikube 的版本:


~ $ minikube versionminikube version: v0.24.1
复制代码


启动 Minikube:


~ $ minikube startStarting local Kubernetes v1.8.0 cluster...Starting VM...Downloading Minikube ISO140.01 MB / 140.01 MB [============================================] 100.00% 0sGetting VM IP address...Moving files into cluster...Downloading localkube binary148.25 MB / 148.25 MB [============================================] 100.00% 0s0 B / 65 B [----------------------------------------------------------] 0.00%65 B / 65 B [======================================================] 100.00% 0sSetting up certs...Connecting to cluster...Setting up kubeconfig...Starting cluster components...Kubectl is now configured to use the cluster.Loading cached images from config file.
复制代码


该命令会下载 ISO 文件,创建 VM 并预置 Kubernetes 组件,以启动单节点集群。默认情况下,集群配置和凭证存储在 ~/.kube/config 文件中。可以使用以下命令查看不同集群的环境:


~ $ kubectl config get-contextsCURRENT  NAME       CLUSTER     AUTHINFO NAMESPACE*        minikube   minikube    minikube
复制代码


如您所见,到目前为止我们只创建了一个 Kubernetes 集群。如果已经创建了多个集群,会在该命令下全部列出。


第一列中的 * 也表示这是当前环境;所有的 kubectl 命令将指向该集群。例如,您可以查看集群中的节点:


~ $ kubectl get nodesNAME     STATUS ROLES   AGE   VERSIONminikube Ready  <none>  1m    v1.8.0</none>
复制代码


kubectl version 命令现在可以用于打印客户端和服务器版本:


~ $ kubectl version --short=trueClient Version: v1.8.5Server Version: v1.8.0
复制代码


所有常用的 kubectl 命令现在都可以在该集群中应用。

使用 Docker for Mac 设置 Kubernetes 集群

Docker for Mac/Docker for Windows 可帮助有兴趣使用 Docker 的开发人员迈出第一步。可以下载 Docker for Mac 的 Stable (稳定) 或 Edge (优势) 版。Stable (稳定) 版已经过全面检验和测试,并附带最新的 Docker GA 版本。正如其名,Edge (优势) 版提供最新的、最先进的功能。此类功能中的一项已作为 Docker CE Edge (优势) 版 17.12.0-Ce-rc2-mac41 内部测试 的一部分引入, 它支持开发和测试所用的单节点 Kubernetes 集群。


也就是说,无需 Minikube 等其他工具,您即可使用相同的 Docker for Mac 来创建 Docker 映像、启用 Kubernetes 集群并部署 pod。截至本文发表时, ~~~~仅 Q1 中的 Docker for Mac 和 Docker for Windows 支持此功能。(Docker 企业版也支持 Kubernetes。)


我们来了解一下如何使用 Docker for Mac 设置本地 Kubernetes 集群。


要从 Docker for Mac 访问 Kubernetes,您需要注册 Docker Beta 项目。在您的 Docker ID 被批准用于 Kubernetes 访问之后,您会收到一个链接,供您下载并安装 Docker for Mac Edge (优势) 版。确保 “关于 Docker” 显示为 12.12.0-ce-rc2-mac31 或更高版本。现在,在 “首选项” 对话框中会出现一个新的选项卡,用于配置 Kubernetes 集群。


选择 “Enable Kubernetes”(启用 Kubernetes),然后点击 “Apply & Restart”(应用并重启), 启动一个单节点 Kubernetes 集群。



稍后,除了 Docker 之外,状态栏也会更新,说明 Kubernetes 正在运行。



还将在 ~/.kube/config的默认文件中为集群创建一个配置。kubectl CLI 会显示配置,如下所示:


~ $ kubectl config get-contextsCURRENT  NAME               CLUSTER                    AUTHINFO            NAMESPACE*        minikube           minikube                   minikube         docker-for-desktop docker-for-desktop-cluster docker-for-desktop
复制代码


更改 kubectl 使用的环境,验证当前环境,并获取节点列表:


~ $ kubectl config use-context docker-for-desktopSwitched to context "docker-for-desktop".~ $ kubectl config get-contexts CURRENT NAME               CLUSTER                     AUTHINFO NAMESPACE *       docker-for-desktop docker-for-desktop-cluster  docker-for-desktop         minikube           minikube                    minikube ~ $ kubectl get nodes NAME               STATUS  ROLES    AGE   VERSION docker-for-desktop Ready   master   23h   v1.8.2
复制代码


现在, docker version 命令将 Kubernetes 显示为编配器:


~ $ docker versionClient: Version: 17.12.0-rc1-kube_beta API version: 1.35 Go version: go1.9.2 Git commit: a36c9215a7f8d5da5231d2cca353375bcb27efe3 Built: Thu Dec 7 17:33:49 2017 OS/Arch: darwin/amd64 Orchestrator: kubernetes
Server: Engine: Version: 17.12.0-ce-rc2 API version: 1.35 (minimum version 1.12) Go version: go1.9.2 Git commit: f9cde63 Built: Tue Dec 12 06:45:30 2017 OS/Arch: linux/amd64 Experimental: true
复制代码


注意: Kubernetes 显示为编配器,与默认的 swarm相反。


您现在只需一个工具即可拥有最新的 Kubernetes 计划程序和最新的 Docker 运行时!


我们使用 kubectl version 命令查看客户端和服务器版本:


~ $ kubectl version --short=trueClient Version: v1.8.2Server Version: v1.8.0
复制代码


再重复一次,所有常用的 kubectl 命令都可以在此集群上运行。


除了使用所有熟悉的 kubectl 命令外,您还可以将 Docker Compose 堆栈部署为最佳 Kubernetes 应用程序。我们稍后会对此进行更详细的介绍,不过现在您可以观看以下视频:


在本地 Kubernetes 集群上完成应用程序初始开发和测试后,我们的 Kubernetes 研讨会将指导您在 AWS 上创建 Kubernetes 集群并在该集群上部署应用程序。


Arun


作者介绍:


Arun Gupta


Arun Gupta 是 Amazon Web Services 的首席开源技术专家。他在 AWS 主要负责与容器和开源有关的所有事务。他还负责 AWS 内部的 CNCF 战略,积极参与 CNCF 董事和技术会议。他曾在 Sun、Oracle、Red Hat 和 Couchbase 组建和领导开发人员社区,在此方面拥有超过 12 年的经验。他有丰富的演讲经历,在 40 多个国家/地区就各种主题发表过演讲,并且连续四年荣膺 JavaOne Rock Star。Gupta 还在美国创立了 Devoxx4Kids 分会,并继续在儿童中推广技术教育。此外,Gupta 还是一位多产的博客作者并出版过多本书籍。他热爱跑步、喜欢环球旅行。这就是 Gupta,一位 Docker 队长、一个 Java 冠军、一名 JUG 领袖、一位 NetBeans 梦之队成员。您可以访问他的博客 @arungupta,了解更多信息。
复制代码


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/run-kubernetes-on-your-laptop/


2019-10-29 08:001050

评论

发布
暂无评论
发现更多内容

这个提升效率宝藏级工具一定要收藏使用

秃头小帅oi

可以显著提升脚本的健壮性和效率

Joseph295

灵活适配团队需求:CFlow 价值流模板高效管理研发全流程

嘉为蓝鲸

DevOps 智能运维 CFlow

全球第一!百度文库智能PPT月访问量超3400万,用户规模翻倍增长

极客天地

JeecgBoot v3.8.1发布,集成AI应用的低代码平台

JEECG低代码

低代码平台 代码生成 AIGC JeecgBoot AI低代码平台

set -euo pipefail

Joseph295

开源鸿蒙持续壮大 三大运营商全面入局 多元成果亮相HDC2025

最新动态

Python搭建HTTP服务如何快速远程访问?内网穿透工具一招搞定!

贝锐

Python HTTP 内网穿透

ZFile+内网穿透工具,无需NAS、无需公网IP搭建私有网盘/私有云

贝锐

内网穿透 NAS

如何快速打印CAD图纸?怎么设置?

在路上

cad cad看图 CAD看图王

Iceberg在图灵落地应用

百度Geek说

嘉为蓝鲸 CCI 持续集成平台:K8s 集群集成优化容器构建体验

嘉为蓝鲸

DevOps 智能运维 k8s集群

如何安装CST软件拓展资料包

思茂信息

cst CST软件 CST Studio Suite

打造鸿蒙系统中最好用的加载动画和提示弹窗

幽蓝计划

harmony HarmonyOS NEXT

数据可视化:5 分钟读懂其核心价值与技术实践

镜舟科技

数据可视化 商业智能 运维监控 StarRocks 跨部门协作

淘宝API系列:淘宝商品评论API接口详解

tbapi

淘宝API 天猫API 淘宝商品评论API 天猫商品评论API

本地部署Jupyter,没有公网IP如何用内网穿透工具实现远程访问?

贝锐

机器学习 内网穿透 jupyter jupyterlab

领航智能运维新时代!嘉为蓝鲸与三大客户联合斩获央国企数智化转型案例殊荣

嘉为蓝鲸

智能运维 数智化转型

三类不同身份的“开发者”,在昇腾CANN的土壤上种下了繁荣之花

极客天地

吉利银河A7全球首秀,2L级油耗引领电混家轿进入新时代

极客天地

现代财务——智能技术背景下的企业变革

智达方通

企业管理 全面预算 财务管理

MaxCompute x 聚水潭:基于近实时数仓解决方案构建统一增全量一体化数据链路

阿里云大数据AI技术

人工智能 数据挖掘 数据库 数据分析 数据处理

京东币链科技严正声明:澄清稳定币及合作虚假信息,暂未设立相关社区

TechubNews

海洋服务业定义以及需要使用堡垒机场景分析

行云管家

网络安全 数据安全

基于 AI 网关和 llmaz,提升 vLLM 推理服务可用性和部署易用性的实践

阿里巴巴云原生

阿里云 云原生 Higress

无需公网IP,内网穿透远程访问Ollama+Gemma3模型+Open WebUI教程

贝锐

内网穿透 ollama Gemma

Community Over Code Asia 2025DataOps专题:SeaTunnel社区出品并将带来多个分享!

白鲸开源

开源 技术 数据集成 Apache SeaTunnel CommunityOverCode

CAD图层是干什么用的?怎么设置?

在路上

cad

《Building REST APIs with Flask》读后感

codists

flask

Go 框架选型指南:为什么我们团队最终选择了它?

vison

Go gRPC Backend Developer gin

从数据到决策:CMDB消费在故障预警与根因分析中的实践

嘉为蓝鲸

AIOPS CMDB 智能运维

在你的电脑上运行Kubernetes_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章