主页 > 人工智能  > 

【Kubernetes】k8s部署指南

【Kubernetes】k8s部署指南
1. k8s 入门 1.1 k8s 简介

需要最需要明确的就是:kubernetes(简称 k8s ) 是一个 容器编排平台 ,换句话说就是用来管理容器的,相信学过 Docker 的小伙伴对于容器这个概念并不陌生,打个比方:容器就是一个 “程序的隔离运行环境”,屏蔽了底层 OS 实现以及一些其余资源的依赖

1.2 k8s 基本概念

作为初学者,我们只需要了解 k8s 当中有这些概念即可:

Pod:实例Service:逻辑上的服务,可以认为是你业务上某个微服务的直接映射Deployment:管理 Pod 的东西

如何来理解 Pod 和 Service 的关系?

简单来说你有一个订单服务(OrderService)需要部署三个实例做集群部署,那么在 k8s 中就对应有一个 order 的 Service,对应三个 Pod 实例

如何来理解 Pod 和 Deployment 的关系?

简单来说 Deployment 就是一个运维管家,你要求有三个 Pod 那么多启动一个 Deployment 就会帮你自动删除一个;如果有一个宕机了,那么 Deployment 就会帮你自动重启一个 2. k8s windows 安装

参考文档: kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-windows/

此处我们在 Windows 平台使用curl命令来安装kubectl工具方便操作 k8s:curl.exe -LO "[ dl.k8s.io/release/v1.32.0/bin/windows/amd64/kubectl.exe"]( dl.k8s.io/release/v1.32.0/bin/windows/amd64/kubectl.exe")

3. k8s 部署极简 Go 应用

❗ 注意:

为了方便入门,本教程仅部署一个简单使用 gin 框架搭建的 Web 系统,没有用到 MySQL 和 Redis 等其他中间件依赖请确保您的主机上已经安装好了 Docker 环境,因为后期需要使用 Docker 制作镜像和运行容器

步骤一:首先准备好一段需要运行的 go 代码:

package main import ( "github /gin-gonic/gin" "net/http" ) func main() { server := gin.Default() server.GET("/hello", func(ctx *gin.Context) { ctx.String(http.StatusOK, "k8s hello world!") }) server.Run(":8080") }

步骤二:在命令行中交叉编译这段代码为 Linux 环境下的可执行文件:GOOS=linux GOARCH=arm go build -o k8s_demo .

步骤三:编写 Dockerfile 制作镜像:docker build -t ricejson/demo:v0.0.1 .(步骤二和步骤三你也可以使用 Makefile 文件编写)

# 使用哪个基础镜像 FROM ubuntu:20.04 # 拷贝当前目录k8s_demo到工作目录中 COPY k8s_demo /app/k8s_demo # 设定工作根目录 WORKDIR /app # 启动脚本 ENTRYPOINT ["/app/k8s_demo"]

步骤四:编写 k8s Deployment 文件:

apiVersion: apps/v1 kind: Deployment metadata: name: demo-service spec: # 副本数 replicas: 3 # 选择器 selector: matchLabels: app: demo template: metadata: labels: app: demo spec: containers: - name: demo image: ricejson/demo:v0.0.1 ports: - containerPort: 8080

步骤五:编写 k8s Service 文件:

apiVersion: v1 kind: Service metadata: name: demo spec: selector: app: demo ports: - protocol: TCP port: 80 targetPort: 8080 type: NodePort

步骤六:需要在 Docker 设置中启用 enable kubernetes

步骤七:借助kubectl工具启动:kubectl apply -f k8s-demo-deployment.yaml

步骤八:借助kubectl工具启动:kubectl apply -f k8s-demo-service.yaml

步骤九:配置端口转发:kubectl port-forward <pod-name> 8080:8080

此时就可以在本地访问到了!

4. k8s 配置文件参数含义

下面就来简单解释下 k8s 配置文件当中的一些参数含义:

Deployment 文件:

apiVersion:由于 k8s 是一个配置驱动的框架,因此需要让 k8s 知道如何来解读这个配置文件,就需要指定apiVersionspec:就是 Deployment 的规格说明书 replicas:副本数量,就是你要管理多少个 Podselector:筛选器,就是告知 Deployment 在那么多的 pod 中,究竟哪些 Pod 由该 Deployment 进行管理template:告诉 Deployment 究竟如何创建每一个 Pod template:需要特别指定容器 containers,容器需要指定镜像 image

Service 文件:

type:这里是选择负载均衡策略ports:配置端口 port:外部访问的端口protocol:端口监听的协议targetPort:转发请求的时候,应该转发到 Pod 的哪个端口上
标签:

【Kubernetes】k8s部署指南由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【Kubernetes】k8s部署指南