【使用 Kind搭建本地k8s 集群】
使用kind(Kubernetes IN Docker)部署和管理应用程序的过程。首先,详细说明了kind的安装步骤,包括下载、授权和集群创建。接着,通过一个示例Spring Boot Web应用,演示了如何构建Docker镜像并将其加载到kind集群中。在部署阶段,使用Kubernetes的Deployment对象创建了多个副本,确保应用的高可用性。此外,通过Service对象,将Web应用的服
使用 Kind搭建本地Kubernetes 集群
- 安装 Kind
- 部署一个 Web 应用
- 构建 Docker 镜像
- 创建 Kubernetes Deployment
- 创建 Kubernetes Service
- 连接远端的kubectl
安装 Kind
首先,下载并安装 Kind 工具:
wget https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
# https://kind.sigs.k8s.io/docs/user/quick-start/#installing-from-source
然后,通过以下命令创建一个 Kubernetes 集群。请注意,这个过程可能会花费一些时间。
kind create cluster
部署一个 Web 应用
构建 Docker 镜像
使用以下 Dockerfile 构建一个 Spring Boot Web 应用的 Docker 镜像,应用的功能就是返回自己的IP地址。
FROM openjdk:11-jre-slim
WORKDIR /
COPY ../build/libs/k8s-web-v1.jar /app/app.jar
EXPOSE 8080
CMD ["java", "-jar", "/app/app.jar"]
@GetMapping("/k8s/web/host")
public SKResponse webPort() throws UnknownHostException {
InetAddress localhost = InetAddress.getLocalHost();
String ipAddress = localhost.getHostAddress();
return SKNoDataResponse.getResponse(CommonResponseEnum.SUCCESS.getCode(), "Pod的IP为:".concat(ipAddress));
}
执行以下命令构建镜像,并通过 Kind 让集群节点能够访问该镜像。
docker build -t k8sweb .
kind load docker-image k8sweb
创建 Kubernetes Deployment
编写以下 YAML 文件描述 Deployment,其中包括了创建 3 个副本的配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: k8s-web-deployment
spec:
replicas: 3
selector:
matchLabels:
app: k8s-web
template:
metadata:
labels:
app: k8s-web
spec:
containers:
- name: k8sweb
image: k8sweb:latest
imagePullPolicy: Never
ports:
- containerPort: 8080
执行以下命令部署应用:
kubectl apply -f deployment.yaml
创建 Kubernetes Service
创建以下 YAML 文件来定义 Service,使得应用可以通过节点 IP 和指定的 NodePort 进行访问:
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: k8s-web-service
spec:
selector:
app: k8s-web
ports:
- protocol: TCP
port: 8080
nodePort: 30001
type: NodePort
执行以下命令部署 Service:
kubectl apply -f service.yaml
最后,通过以下命令获取节点信息并访问 Web 应用:
kubectl get nodes -o wide
curl http://<Node-IP>:30001/k8s/web/host
连接远端的kubectl
从远端下载kubectl
配置文件保存到本机目录,远端文件路径/home/名字/.kube/config
导入IDEA
添加服务,在添加新的上下文
弹出页面中选择kind
就能使用了。kubectl.exe的版本最好和远端的一样
kubectl version
curl.exe -LO "https://dl.k8s.io/release/v1.29.1/bin/windows/amd64/kubectl.exe"
# https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/#install-kubectl-binary-with-curl-on-windows
https://kind.sigs.k8s.io/docs/user/quick-start/#installing-from-source
https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/#install-kubectl-binary-with-curl-on-windows
更多推荐
所有评论(0)