因为 k8s 部分功能其实是偏运维的,对研发来说优先级并不太高;所以我不太会涉及一些 k8s 运维的知识点,比如安装、组件等模块;主要以我们日常开发会使用到的组件讲起 。
文章插图
背景最近这这段时间更新了一些 k8s 相关的博客和视频,也收到了一些反馈;大概分为这几类:
- 公司已经经历过服务化改造了,但还未接触过云原生 。
- 公司部分应用进行了云原生改造,但大部分工作是由基础架构和运维部门推动的,自己只是作为开发并不了解其中的细节,甚至 k8s 也接触不到 。
- 还处于比较传统的以虚拟机部署的传统运维为主 。
恰好我之前正好从业务研发的角度转换到了基础架构部门,两个角色我都接触过,也帮助过一些业务研发了解公司的云原生架构 。
为此所以我想系统性的带大家以研发的角度对 k8s 进行实践 。
因为 k8s 部分功能其实是偏运维的,对研发来说优先级并不太高;所以我不太会涉及一些 k8s 运维的知识点,比如安装、组件等模块;主要以我们日常开发会使用到的组件讲起 。
计划入门
- 部署应用到 k8s
- 跨服务调用
- 集群外部访问
- 如何使用配置
- 服务网格实战
- 应用探针
- 滚动更新与回滚
- 优雅采集日志
- 应用可观测性
- 指标可视化
- helm 一键部署
- 编写 Operator 自动化应用生命周期
文章插图
这里我整理了一下目录,每个章节都有博客+视频配合观看,大家可以按照喜好选择 。
因为还涉及到了视频,所以只能争取一周两更,在两个月内全部更新完毕 。
根据我自己的经验,以上内容都掌握的话对 k8s 的掌握会更进一步 。
部署应用到 k8s首先从第一章【部署应用到 k8s】开始,我会用 Go 写一个简单的 Web 应用,然后打包为一个 Docker 镜像,之后部署到 k8s 中,并完成其中的接口调用 。
编写应用【K8S 入门到实战--部署应用到 K8S】
func main() {http.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) {log.Println("ping")fmt.Fprint(w, "pong")})http.ListenAndServe(":8081", nil)}
应用非常简单就是提供了一个 ping 接口,然后返回了一个 pong 。Dockerfile
# 第一阶段:编译 Go 程序FROM golang:1.19 AS dependenciesENV GOPROXY=https://goproxy.cn,directWORKDIR /go/src/AppCOPY go.mod .#COPY ../../go.sum .RUN --mount=type=ssh go mod download# 第二阶段:构建可执行文件FROM golang:1.19 AS builderWORKDIR /go/src/appCOPY . .#COPY --from=dependencies /go/pkg /go/pkgRUN go build# 第三阶段:部署FROM debian:stable-slimRUN apt-get update && apt-get install -y curlCOPY --from=builder /go/src/app/k8s-combat /go/bin/k8s-combatENV PATH="/go/bin:${PATH}"# 启动 Go 程序CMD ["k8s-combat"]
之后编写了一个 dockerfile 用于构建 docker 镜像 。docker:@echo "Docker Build..."docker build . -t crossoverjie/k8s-combat:v1 && docker image push crossoverjie/k8s-combat:v1
使用 make docker 会在本地构建镜像并上传到 dockerhub 。编写 deployment下一步便是整个过程中最重要的环节了,也是唯一和 k8s 打交道的地方,那就是编写 deployment 。
在之前的视频《一分钟了解 k8s》中讲过常见的组件:
文章插图
其中我们最常见的就是 deployment,通常用于部署无状态应用;现在还不太需要了解其他的组件,先看看 deployment 如何编写:
apiVersion: apps/v1kind: Deploymentmetadata:labels:app: k8s-combatname: k8s-combatspec:replicas: 1selector:matchLabels:app: k8s-combattemplate:metadata:labels:app: k8s-combatspec:containers:- name: k8s-combatimage: crossoverjie/k8s-combat:v1imagePullPolicy: Alwaysresources:limits:cpu: "1"memory: 300Mirequests:cpu: "0.1"memory: 30Mi
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 梦见到处都是水有什么征兆 梦见到处都有水在流是怎么回事
- 张学友:“千万不要跟刘嘉玲打麻将,拍戏赚到的50万大部分都给了刘嘉玲!”
- 女人梦见河水是啥预兆 已婚女人梦到水是什么征兆
- 从160斤瘦到100斤,减肥方法大公开,简单值得收藏学习
- 王志文、靳东都娶不到的她,最后为何会嫁给平平无奇的田小洁?
- 梦见水泥有什么征兆 梦到水泥
- 涂改液沾到手上怎么办 涂改液弄到手上怎么洗
- 白板笔弄到衣服上用什么擦能擦掉 白板笔弄到衣服上能洗掉吗
- 碳素笔油弄到衣服上怎么洗掉 碳素笔油弄衣服上怎么去除
- 梦到鞋什么预兆 梦见鞋有什么预兆