| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> K8S中使用helm部署项目——HelloWorld为例 -> 正文阅读 |
|
[系统运维]K8S中使用helm部署项目——HelloWorld为例 |
一、配置环境:????????需要docker、helm、k8s环境 ? ? ? ? docker安装操作可查看docker官方网站 ? ? ? ? helm安装操作可查看Helm安装官网 ? ? ? ? K8S安装操作可查看Kubernetes(K8S)入门与安装配置 二、构建一个项目????????编写一个springboot项目,只需要实现helloworld就行; ????????将编写的项目打包成jar文件; ????????将jar文件上传到本地。 三、通过docker将镜像部署????????1、Docker部署其中主要是依赖于DockerFile文档; ????????????????因此第一步需要编写一个DockerFile文档(DockerFile文件名首字母必须大写);? ? ? ? ? ?
? 其中的一些参数需要了解其作用,这里涉及到的几个参数分别是: ??FROM:用于指定基础镜像,可以是自己生成的镜像,也可以是系统自带的镜像。当这个项目是一个Java项目时,它所依赖的基础镜像就是jdk版本为8的java基础镜像。 ? MAINTAINER:指定作者名的。 ? RUN:构建容器时需要运行的命令,可以写在RUN后面;有两种写法:一种是后接shell命令;另一种是类似于函数调用,RUN[“executable”,”param1”,”param2”],executable可看作一种可执行文件,后面两个是两个参数。 ?ADD:复制,语法ADD <src> <dest>,可以把虚拟机和容器看作两个Linux服务器,将虚拟机本地文件(<src>)复制到容器中的某个路径(<dest>)下. ?EXPOSE:将容器运行时的监听端口暴露给外部,从外部浏览器访问时,所需的端口号。 ?ENTRYPOINT:启动时的默认命令,这里的意思就是容器启动时就执行这个项目的jar文件。 ?ENV:设置环境变量。 ?CMD:容器启动时执行的命令,具体和RUN相似,其中包含的参数必须使用双引号””,参数传递后docker解析的是JSON数组。 CMD和RUN的区别是RUN构建容器时就运行的命令以及提交运行结果;CMD是容器启动时执行的命令,构建时不运行。 还有其他参数可参考 2、启动docker ? ? 输入命令: docker start 3、构建镜像 ? ? 输入命令:docker build -t 自定义镜像名:镜像版本(不写就默认为latest) .(这个英文句号不能忽视)?? 4、启动容器 ? ? 输入命令:docker run -d --name 自定义容器名 -p 8080:8080 上面创建的镜像名:镜像版本 ? ? 登录harbor:docker login 5、推送到仓库 ? ? 标记tag:docker tag 上面创建的镜像名:镜像版本 仓库路径/镜像名:镜像版本 ? ? 推送:docker push 仓库路径/镜像名:镜像版本 ? ? 可以直接编写一个.sh文件,然后在本地中运行。
四、编写helm????????1、helm是什么? ? ? ?Helm是通过打包的方式,部署和管理k8s应用。K8S应用部署的时候是需要依次部署deployment、service这些的,当K8S的资源清单文件比较多的时候,部署起来步骤很繁琐。 ? ? ? ?Helm是把部署环境封装起来,使K8S的应用管理可配置且能动态生成,通过动态生成K8S的资源清单文件,然后使用kubectl自动调用K8S资源部署。 ????????2、helm文件结构 ? ? (1)Templates包中放K8S的资源清单文件,使用.yaml文件格式,一般有deployment.yaml、service.yaml、NOTES.txt等; ? ? ? ? NOTES.txt文件是chart的帮助文本,用户运行helm install时显示给用户; ? ? ? ?deployment.yaml时创建Kubernetes deployment的基本mainfest; ? ? ? ?service.yaml是为deployment创建service的mainfest。
????????(2)Values.yaml文件中用于统一存放资源清单文件的参数,资源清单文件在引用时格式为{{ .Values.XXX.xxxx}},Values这里必须大写,所有资源清单文件的参数都放在Values.yaml文件中。
????????(3)Chart.yaml文件:
????????????????几个必须项: ????????????????ApiVersion:是chart的apiVersion,始终是v1 ????????????????Name:chart的名 ????????????????Version:chart的版本号,需要符合Semver 2 ????????????????配置简单的helm文件一般可以使用默认的chart.yaml文件。 ????????????????其他配置参数 五、打包helm????????Helm package 上传的helm包名 六、上传至仓库? ? ? ? 两种方式: ? ? ? ? ????????1、到Harbor中直接上传。 ? ? ? ? ????????2、命令:
安装helm push插件,详见helm push安装 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 4:16:46- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |