type
status
category
date
slug
summary
tags
password
icon
这里写文章的前言:
Kubernetes(也称为 k8s)是一个开源容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。
k8s我的理解是先创建一个单节点或者多节点集群,其下分为多个命名空间,不同命名空间里面有一个或多个我们自定义的服务,k8s可以为我们通过服务名来进行服务注册与发现,不管是服务与服务之间的通信还是客户端和服务之间的通信,可以不用关心具体IP地址。
一开始使用wsl2分发版debian12上安装docker ce社区版来使用kind学习k8s,起初成功后面停止集群,使用kind delete cluster --name <cluster name>命令后,后面再次启动k8s集群节点会一直出错,后面改用docker for windows 配合本地wsl2的debian可以多次成功启用或关闭集群
📝 主旨内容
wsl2上安装kind启动k8s服务
Kind:单节点集群
我们准备创建第一个集群:
我们的第一个集群已创建,它是一个单节点集群:
Kind:多节点集群
下面,我们来尝试创建一个多节点集群:
通过以上操作,我们创建了一个三节点集群,如果再看一次服务,我们将看到具有三个副本的集群:
Kind:创建仪表板
使用命令行工作是一件好事。但是,在处理Kubernetes时,我们有时可能希望有一个直观的概览。
为此,我们需要创建一个Kubernetes Dashboard项目:
其中https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc6/aio/deploy/recommended.yaml 需要翻墙才能获得,为此在wsl2中进行http proxy相关配置
HttpProxy
获取windows主机IP也可以通过windows主机cmd查看ipconfig

这里不能使用ping命令,好像是ping是独特的协议不走http

如果使用ClusterIP创建服务时,在Windows浏览器中键入URL,则无法访问该服务:
因此,我们需要创建一个临时代理:
使用k8s仪表盘
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
在浏览器中打开这个URL就可以看到k8s的仪表盘了
接下来我们需要用输入token的方式进入管理,详情查看获取token

让我们打开一个新的WSL2会话:
Getting a Bearer Token for ServiceAccount
Now we need to find the token we can use to log in. Execute the following command:
It should print something like:
这个是wsl上的一个redis.yaml文件使用kubectl启动的redis服务,命名空间:adhoc,服务名:redis-svc
注意k8s的客户端和服务端版本一般不能相差过一个小版本使用kubectl version查看版本

成功了!仪表板还列出了我们的节点:

连接到在 WSL 2 上运行的 Kubernetes 集群中的 Redis 服务
在 WSL 2 中运行 Port Forwarding:
这会将 Redis 服务的 6379 端口映射到您的本地 6379 端口。
使用 Redis CLI 连接 Redis:
在 Windows 上,打开命令提示符或 PowerShell 并使用 Redis CLI 连接到 Redis
这里
-h localhost -p 6379 指定连接到本地主机的 6379 端口。wsl2 Debian12安装redis-cli
安装完成后,您可以使用以下命令连接到 Redis:
一旦
redis-cli 启动,您可以执行一些基本命令来验证 Redis 连接,例如:
这应该能够正确地在 Redis 中设置和获取键值对
停止Kind集群
找出集群名称
如果您不确定集群的名称,可以使用以下命令列出所有 Kind 集群:
停止集群
使用以下命令停止集群,这里假设您的集群名称是
kind:替换
kind 为您的实际集群名称。这个命令会停止并删除 Kind 集群。注意事项
- 停止 Kind 集群会删除集群及其所有资源。如果您想以后再次使用该集群,需要重新创建。
- Kind 是在 Docker 容器中运行的 Kubernetes 集群,因此停止集群实际上是停止并删除了运行集群的 Docker 容器。
- 如果您只是想暂时停用集群而不是完全删除,可以考虑直接停止 Docker 容器。但通常,Kind 集群是为临时用途设计的,因此删除并重新创建是一种常见做法。
通过以上步骤,您可以有效地管理在 WSL 2 中通过 Kind 运行的 Kubernetes 集群。
- 作者:Guxi8086
- 链接:https://Guxi8086.com/article/1-27
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
