欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 【Kubernetes】k8s 部署指南

【Kubernetes】k8s 部署指南

2025/2/22 19:00:04 来源:https://blog.csdn.net/weixin_62533201/article/details/145668506  浏览:    关键词:【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 安装

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

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

3. k8s 部署极简 Go 应用

❗ 注意:

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

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

package mainimport ("github.com/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: demotemplate:metadata:labels:app: demospec:containers:- name: demoimage: ricejson/demo:v0.0.1ports:- containerPort: 8080

步骤五:编写 k8s Service 文件:

apiVersion: v1
kind: Service
metadata:name: demo
spec:selector:app: demoports:- protocol: TCPport: 80targetPort: 8080type: 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 知道如何来解读这个配置文件,就需要指定apiVersion
  • spec:就是 Deployment 的规格说明书
    • replicas:副本数量,就是你要管理多少个 Pod
    • selector:筛选器,就是告知 Deployment 在那么多的 pod 中,究竟哪些 Pod 由该 Deployment 进行管理
    • template:告诉 Deployment 究竟如何创建每一个 Pod
  • template:需要特别指定容器 containers,容器需要指定镜像 image

Service 文件

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词