深入剖析 Kubernetes
张磊
Kubernetes 社区资深成员与项目维护者
113629 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
再谈开源与社区 (1讲)
结束语 (1讲)
深入剖析 Kubernetes
15
15
1.0x
00:00/00:00
登录|注册

12 | 牛刀小试:我的第一个容器化应用

你好,我是张磊。今天我和你分享的主题是:牛刀小试之我的第一个容器化应用。
在上一篇文章《从 0 到 1:搭建一个完整的 Kubernetes 集群》中,我和你一起部署了一套完整的 Kubernetes 集群。这个集群虽然离生产环境的要求还有一定差距(比如,没有一键高可用部署),但也可以当作是一个准生产级别的 Kubernetes 集群了。
而在这篇文章中,我们就来扮演一个应用开发者的角色,使用这个 Kubernetes 集群发布第一个容器化应用。
在开始实践之前,我先给你讲解一下 Kubernetes 里面与开发者关系最密切的几个概念。
作为一个应用开发者,你首先要做的,是制作容器的镜像。这一部分内容,我已经在容器基础部分《白话容器基础(三):深入理解容器镜像》重点讲解过了。
而有了容器镜像之后,你需要按照 Kubernetes 项目的规范和要求,将你的镜像组织为它能够“认识”的方式,然后提交上去。
那么,什么才是 Kubernetes 项目能“认识”的方式呢?
这就是使用 Kubernetes 的必备技能:编写配置文件。
备注:这些配置文件可以是 YAML 或者 JSON 格式的。为方便阅读与理解,在后面的讲解中,我会统一使用 YAML 文件来指代它们。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入剖析 Kubernetes》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(100)

  • 最新
  • 精选
  • gogo
    推荐使用replica=1而不使用单独pod的主要原因是pod所在的节点出故障的时候 pod可以调度到健康的节点上,单独的pod只能在节点健康的情况下由kubelet保证pod的健康状况吧

    作者回复: 对的

    7
    255
  • shao
    下面的写法有问题 hostPath: /var/data 建议改成: volumes: - name: nginx-vol hostPath: path: "/home/vagrant/mykube/firstapp/html"

    作者回复: 已修正

    29
  • 千寻
    emptyDir创建一个临时目录,pod删除之后临时目录也会被删除。在平时的使用下,有哪些场景会用到这种类型volume呢?

    作者回复: 临时写文件,又不想提交到镜像里。另外,volume并不跟pod同生命周期,不会删的这么快。

    5
    28
  • 巩夫建
    yaml文件中如何使用变量,不是环境变量env那种,而是我在yaml定义一个版本号的变量,当版本发生变更,我只需要修改版本号变量,或者外部传参就行了。不希望频繁修改yaml文件。

    作者回复: 可以使用placeholder,或者yaml模板jinja

    5
    21
  • fiisio
    想问下大规模集群使用怎样的部署方式比较好,主要考虑到后期的运维,更新?例如2000节点以上。

    作者回复: 2k节点一般得用saltstack等专业武器了,毕竟管2k个机器已经可以排除大部分工具了……

    20
  • 西堤小筑
    老师您好,咨询一个问题: 对于一些需要科学上网才能pull下来的docker image,通常是使用docker hub上的私人image pull到本地再改tag来完成。但k8s上用yaml写的image地址,运行的时候就直接从网上pull了,什么写法可以做到使用本地image,不让k8s从网上pull呢?

    作者回复: 一样的啊,写private registry不就可以了。密码可以用Secret保存。

    3
    12
  • 落叶
    请问,业务为了负载,起相同两个pod,属于同一个service里面,这个有负载功能会把请求负载到两个pod上面吗?我测试对于长链接,只有一个pod在接受请求,另一个什么都没有

    作者回复: 你都说了是长链接了……

    5
    12
  • hjt353
    kubernetes 有很多资源对象:包括 configmap Deployment Namespace 等资源,我在编写这些资源 yaml 文件时,比如:deployment.yaml 文件,怎么查阅 deployment 资源包括哪些属性(比如:apivseresion kind spec等),这些属性又包含哪些配置信息(比如:.spec.replicas 配置)

    作者回复: 看kubernetes api文档

    3
    9
  • 送普选
    先给这专栏赞一个!如何在yml中的镜像版本号使用变量,这样开发修改后修改了代码递增了镜像版本,在yml中自动使用,不用修改yml文件?谢谢

    作者回复: sed替换,或者用yaml模板jinjia

    9
  • hhh
    从best practice的角度,一个pod是推荐运行一个容器还是多个容器?

    作者回复: 正是下一篇的内容

    6
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部