当前位置: 首页 > 编程笔记 >

使用 kind 和 Docker 启动本地的 Kubernetes环境

薛烈
2023-03-14
本文向大家介绍使用 kind 和 Docker 启动本地的 Kubernetes环境,包括了使用 kind 和 Docker 启动本地的 Kubernetes环境的使用技巧和注意事项,需要的朋友参考一下

介绍

你曾经花过一整天时间尝试入门Kubernetes吗?多亏最近新出现的一些工具,你可以不用再为此大费周章了。

这篇文章中,我将向你展示使用 kind 在单个 Docker 容器中启动一个集群的步骤。

什么是 kind

因为 kind 是 go 语言实现的,请确保安装了最新版本的 golang。根据开发者文档,推荐使用 go1.11.5 及以上版本。为了安装 kind,请运行这些命令(可能需要运行一段时间)

kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,非常适合用来在本地搭建基于 Kubernetes 的开发/测试环境。

go get -u sigs.k8s.io/kind 
kind create cluster

然后确认 “kind” 集群是可用的。

kind get clusters

设置 kubectl

同样的,使用 Homebrew 或者 Chocolatey 安装最新版本的 kubernetes-cli。最新版本的 Docker 包含了Kubernetes的功能,但使用的是老版本的 kubectl。

运行该命令检查它的版本号。

kubectl version

请确保显示 GitVersion: "v1.14.1" 或更高版本。

如果你发现通过 Docker 运行的 kubectl,试着使用 brew link 或对环境变量重新排序。

一旦 kubectl 和 kind 安装就绪,打开 bash 控制台运行这些命令。

export KUBECONFIG=”$(kind get kubeconfig-path)”
kubectl cluster-info

如果 kind 正确的配置了,会显示一些信息出来。现在你就可以继续开始下面的工作了。耶!

部署第一个应用程序

我们需要部署什么到集群上呢?一个很好的选择就是 Wordpress 因为它包括 MySQL 和 PHP 应用程序。

幸运的是,有一个官方的入门介绍并且描述的非常棒。我们可以尝试使用刚才创建的 kind 集群来操作里面的大多数步骤。

https://kubernetes.io/docs/tut ... lume/ 

首先,从这个页面上下载 mysql-deployment.yaml 和 wordpress-deployment.yaml。

运行两个 cat 命令创建 kustomization.yaml。一旦这些 yaml 文件准备好之后,将文件按照下面显示的那样放到相应的目录里面。

k8s-wp/
kustomization.yaml 
mysql-deployment.yaml 
wordpress-deployment.yaml

然后应用到你的集群当中。

cd k8s-wp 
kubectl apply -k ./

如果命令成功执行你会看到如下的输出:

secret/mysql-pass-7tt4f27774 created
service/wordpress-mysql created
service/wordpress created
deployment.apps/wordpress-mysql created
deployment.apps/wordpress created
persistentvolumeclaim/mysql-pv-claim created
persistentvolumeclaim/wp-pv-claim created

让我们输入这些命令检查下集群的状态:

kubectl get secrets
kubectl get pvc
kubectl get pods
kubectl get services wordpress

等待所有的 pod 变成 Running 状态。

然后,运行这个命令来获取服务。

kubectl port-forward svc/wordpress 8080:80

然后打开http://localhost:8080/

瞧!如果你想查看数据库,检查你的pod,像这样运行一个命令,然后打开你的客户端应用。

kubectl port-forward wordpress-mysql-bc9864c58-ffh4c 3306:3306

结论

kind 对 minikube 来说是一个好的选择因为它只使用单个 Docker 容器。

通过跟集成到Kubernetes1.14 的 Kustomze 结合使用,在你本地的机器上尝试使用 Kubernetes 会更加简单。

到此这篇关于使用 kind 和 Docker 启动本地的 Kubernetes环境的文章就介绍到这了,更多相关kind 和 Docker 启动本地 Kubernetes内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 我已经用docker和docker compose设置了一些环境,因此我有不同的容器和不同的服务,所有这些容器都是由docker-compose编排的,它在我的本地开发环境中运行良好。最近我读了一些关于kubernetes和minikube的文章,但实际上,kubernetes是一个更多用于容器管理的服务器/集群的工具。 问题是,对于本地开发环境(例如php、mysql和apache),我应该使用

  • 试图在使用Kubernetes KinD创建的本地群集上配置kube ops视图,但无法访问它。 舵手安装库贝-view稳定/库贝-view 试图使用网址访问,但不起作用 http://localhost:8001/api/v1/proxy/namespaces/default/services/kube-ops-view/

  • 我正在使用支持 Kubernetes 的 Mac Docker,并且我正在努力创建一个引用本地构建的映像的 Kubernetes 部署。 输出: 这是我的部署。yaml: 当我运行<code>时,kubectl应用-f解聚剂。yamlpod已创建,但: 其中一个豆荚给出了: 有趣的是,如果我尝试运行一些托管在dockerhub上的图像,那么一切都很好,我还尝试使用skaffold,它也像一个魅力一

  • 我觉得自己很蠢。我希望K8s从本地注册表中拉出Docker图像,以确保我的开发周期尽可能快。 我已经按照说明设置了本地注册表,并且正在使用一个不安全的注册表。我已经向它推送了图像,并通过使用VS代码的Docker扩展查看注册表内部来确认它们位于注册表中: 我真的不知道是使用、还是,所以我都使用了这三种方法。

  • 我在一个docker compose文件中运行两个不同的服务。我通过引用容器的服务名称来谈论每个服务。 现在我希望我的容器A也能访问localhost。为此,我添加了network_mode=host的配置,但这会创建一个错误,说明容器A无法与容器B通信。 对于每个撰写文件docker-composs创建一个网络,所以在这种情况下,我应该手动将容器分配到一个专用网络吗?或者是否有任何变通方法来访问

  • 在网上搜索如何在kubernetes中部署本地构建的docker映像,我只找到了与minikube结合的解决方案。 例如:minikube 因此,我想知道,是否可以在由建立的Kubernetes集群中使用本地构建docker镜像,或者是将这些镜像部署到私有注册中心并随后从集群中提取镜像的首选方法?