OpenSource | 在你的电脑上运行Kubernetes
近期对 550 名 Cloud Native Computing Foundation (云原生计算基金会) 成员的调查证实:Kubernetes 是编配平台的首选。此外,调查再次证实,Amazon Web Services 仍然是在云中部署 Kubernetes 集群的首选。kubernetes-aws.io 列出了您可以在 AWS 上轻松创建 Kubernetes 集群的各种方法。
在开发过程中,您不妨在本地机器上运行 Kubernetes,以便在本地启动和调试应用程序。您对本地版本感到满意后,便可在 AWS 上运行的集群上部署完全相同的应用程序。
本文提供了两种在 Mac OS X 机器本地运行 Kubernetes 的方法:常用的 Minikube 和 Docker 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=true Client 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 version minikube version: v0.24.1
启动 Minikube:
~ $ minikube start Starting local Kubernetes v1.8.0 cluster... Starting VM... Downloading Minikube ISO 140.01 MB / 140.01 MB [============================================] 100.00% 0s Getting VM IP address... Moving files into cluster... Downloading localkube binary 148.25 MB / 148.25 MB [============================================] 100.00% 0s 0 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-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE * minikube minikube minikube
如您所见,到目前为止我们只创建了一个 Kubernetes 集群。如果已经创建了多个集群,会在该命令下全部列出。
第一列中的 *
也表示这是当前环境;所有的 kubectl 命令将指向该集群。例如,您可以查看集群中的节点:
~ $ kubectl get nodes NAME STATUS ROLES AGE VERSION minikube Ready <none> 1m v1.8.0
kubectl version
命令现在可以用于打印客户端和服务器版本:
~ $ kubectl version --short=true Client Version: v1.8.5 Server 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-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE * minikube minikube minikube docker-for-desktop docker-for-desktop-cluster docker-for-desktop
更改 kubectl 使用的环境,验证当前环境,并获取节点列表:
~ $ kubectl config use-context docker-for-desktop Switched 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 version Client: 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=true Client Version: v1.8.2 Server Version: v1.8.0
再重复一次,所有常用的 kubectl 命令都可以在此集群上运行。
除了使用所有熟悉的 kubectl 命令外,您还可以将 Docker Compose 堆栈部署为最佳 Kubernetes 应用程序。我们稍后会对此进行更详细的介绍,不过现在您可以观看以下视频:
在本地 Kubernetes 集群上完成应用程序初始开发和测试后,我们的 Kubernetes 研讨会将指导您在 AWS 上创建 Kubernetes 集群并在该集群上部署应用程序。
—Arun
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的