帮助你驾驭 Kubernetes 的 4 个工具 | Linux 中国

640?wx_fmt=jpeg学习如何驾驭 Kubernetes 比如何建造它更重要,这些工具可以帮助你更快上路。-- Scott Mccarty
译者|Xinyu Wang来源|Linux中国

在本系列的第三篇文章中,Kubernetes 基础:首先学习如何使用,我强调你应该学会使用 Kubernetes,而不是建造它。我还解释说,在 Kubernetes 中,你必须学习最小的一组原语来建模应用程序。我想强调这一点:你需要学习的这组原语是最简单的原语集,你可以通过它们学习如何实现生产级的应用程序部署(即高可用性 [HA]、多容器、多应用程序)。换句话说,学习 Kubernetes 内置的原语集比学习集群软件、集群文件系统、负载平衡器、让人发疯的 Apache 和 Nginx 的配置、路由器、交换机、防火墙和存储后端更容易 —— 这些是你在传统的 IT 环境(虚拟机或裸机)中建模简单的 HA 应用程序所需要的东西。

在这第四篇文章中,我将分享一些有助于你学习快速驾驭 Kubernetes 的工具。

1、Katacoda

无疑,Katacoda 是试驾 Kubernetes 集群的最简单方法。只需单击一下,五秒钟后就可以将基于 Web 的终端直接连接到正在运行的 Kubernetes 集群中。这对于使用和学习来说非常棒。我甚至将它用于演示和测试新想法。Katacoda 提供了一个完整的临时环境,在你使用完毕后可以回收利用。

640?wx_fmt=png

OpenShift Playground

640?wx_fmt=png

Kubernetes Playground

Katacoda 提供了一个临时的环境和更深入的实验室环境。例如,我最近三四年主讲的 Linux Container Internals Lab 是在 Katacoda 中构建的。

Katacoda 在其主站点上维护了若干 Kubernetes 和云教程并与 Red Hat 合作以支持了一个 OpenShift 的专用学习门户。了解一下,它们是极好的学习资源。

当你第一次学习驾驶翻斗车时,最好先观察一下其他人的驾驶方式。

2、Podman generate kube

podman generate kube 命令是一个很棒的子命令,可以帮助用户自然地从运行简单容器的简单容器引擎转换到运行许多容器的集群用例(正如我在上篇文章中所描述的那样)。Podman 通过让你启动一个新的容器,然后导出这个可工作的 Kube YAML,并在 Kubernetes 中启动它来实现这一点。看看这个(你可以在 Katacoda lab 中运行它,它已经有了 Podman 和 OpenShift)。

首先,请注意运行容器的语法与 Docker 非常相似:

  1. podman run -dtn two-pizza quay.io/fatherlinux/two-pizza

不过这个是其它容器引擎所没有的:

  1. podman generate kube two-pizza

输出:

  1. # Generation of Kubernetes YAML is still under development!
  2. #
  3. # Save the output of this file and use kubectl create -f to import
  4. # it into Kubernetes.
  5. #
  6. # Created with podman-1.3.1
  7. apiVersion: v1
  8. kind: Pod
  9. metadata:
  10. creationTimestamp: "2019-06-07T08:08:12Z"
  11. labels:
  12. app: two-pizza
  13. name: two-pizza
  14. spec:
  15. containers:
  16. - command:
  17. - /bin/sh
  18. - -c
  19. - bash -c 'while true; do /usr/bin/nc -l -p 3306 < /srv/hello.txt; done'
  20. env:
  21. - name: PATH
  22. value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  23. - name: TERM
  24. value: xterm
  25. - name: HOSTNAME
  26. - name: container
  27. value: oci
  28. image: quay.io/fatherlinux/two-pizza:latest
  29. name: two-pizza
  30. resources: {}
  31. securityContext:
  32. allowPrivilegeEscalation: true
  33. capabilities: {}
  34. privileged: false
  35. readOnlyRootFilesystem: false
  36. tty: true
  37. workingDir: /
  38. status: {}
  39. ---
  40. apiVersion: v1
  41. kind: Service
  42. metadata:
  43. creationTimestamp: "2019-06-07T08:08:12Z"
  44. labels:
  45. app: two-pizza
  46. name: two-pizza
  47. spec:
  48. selector:
  49. app: two-pizza
  50. type: NodePort
  51. status:
  52. loadBalancer: {}

你现在有了一些可以的工作 Kubernetes YAML,你可以用它作为练习的起点来学习、调整等等。-s 标志可以为你创造一项服务。Brent Baude 甚至致力于添加卷/持久卷断言等新功能。如果想进一步深入,请在 Brent 的博客文章《Podman 现在可以轻松过渡到 Kubernetes 和 CRI-O》中了解他的工作。

3、oc new-app

oc new-app 命令非常强大。它是特定于 OpenShift 的,所以它在默认的 Kubernetes 中不可用,但是当你开始学习 Kubernetes 时它非常有用。让我们从快速命令开始创建一个相当复杂的应用程序:

  1. oc new-project -n example
  2. oc new-app -f https://raw.githubusercontent.com/openshift/origin/master/examples/quickstarts/cakephp-mysql.json

使用 oc new-app,你可以从 OpenShift 开发人员那里偷取模板,并在开发原语来描述你自己的应用程序时拥有一个已知良好的起点。运行上述命令后,你的 Kubernetes 命名空间(在 OpenShift 中)将由若干新的已定义资源填充。

  1. oc get all

输出:

  1. NAME READY STATUS RESTARTS AGE
  2. pod/cakephp-mysql-example-1-build 0/1 Completed 0 4m
  3. pod/cakephp-mysql-example-1-gz65l 1/1 Running 0 1m
  4. pod/mysql-1-nkhqn 1/1 Running 0 4m
  5. NAME DESIRED CURRENT READY AGE
  6. replicationcontroller/cakephp-mysql-example-1 1 1 1 1m
  7. replicationcontroller/mysql-1 1 1 1 4m
  8. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  9. service/cakephp-mysql-example ClusterIP 172.30.234.135 <none> 8080/TCP 4m
  10. service/mysql ClusterIP 172.30.13.195 <none> 3306/TCP 4m
  11. NAME REVISION DESIRED CURRENT TRIGGERED BY
  12. deploymentconfig.apps.openshift.io/cakephp-mysql-example 1 1 1 config,image(cakephp-mysql-example:latest)
  13. deploymentconfig.apps.openshift.io/mysql 1 1 1 config,image(mysql:5.7)
  14. NAME TYPE FROM LATEST
  15. buildconfig.build.openshift.io/cakephp-mysql-example Source Git 1
  16. NAME TYPE FROM STATUS STARTED DURATION
  17. build.build.openshift.io/cakephp-mysql-example-1 Source Git@47a951e Complete 4 minutes ago 2m27s
  18. NAME DOCKER REPO TAGS UPDATED
  19. imagestream.image.openshift.io/cakephp-mysql-example docker-registry.default.svc:5000/example/cakephp-mysql-example latest About aminute ago
  20. NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
  21. route.route.openshift.io/cakephp-mysql-example cakephp-mysql-example-example.2886795271-80-rhsummit1.environments.katacoda.com cakephp-mysql-example <all> None

这样做的好处是你可以删除 Pod,观察复制控制器如何重新创建它们,缩放 Pod 等等。你可以使用模板并将其更改为其他应用程序(这是我第一次启动时所做的)。

4、Visual Studio Code

我把我最喜欢的放在最后。我的大部分工作都使用 vi,但我从来没有为 Kubernetes 找到一个好的语法高亮器和代码补完插件(如果有的话,请告诉我)。相反,我发现微软的 VS Code 有一套杀手级的插件,可以完成 Kubernetes 资源的创建并提供样板。

640?wx_fmt=png

VS Code plugins UI

首先,安装上图中显示的 Kubernetes 和 YAML 插件。

640?wx_fmt=png

Autocomplete in VS Code

然后,你可以从头开始创建新的 YAML 文件,并自动补完 Kubernetes 资源。上面的示例显示了一个服务。

640?wx_fmt=png

VS Code autocomplete filling in boilerplate for an object

当你使用自动补完并选择服务资源时,它会填充该对象的一些模板。当你第一次学习使用 Kubernetes 时,这非常棒。你可以构建 Pod、服务、复制控制器、部署等。当你从头开始构建这些文件甚至修改你使用 podman generate kube 创建的文件时,这是一个非常好的功能。

总结

这四个工具(如果算上两个插件,则为六个)将帮助你学习驾驭 Kubernetes,而不是构造或装备它。在本系列的最后一篇文章中,我将讨论为什么 Kubernetes 如此适合运行这么多不同的工作负载。


640?wx_fmt=png


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 如何高效地准备技术面试?

  • 漫画:有趣的“帽子问题”

  • 我为什么放弃了 Chrome?

  • 5天破10亿的哪吒,为啥这么火,Python来分析

  • 通俗易懂:图解10大CNN网络架构

  • 互联网公司上演反腐风暴;GitHub CEO 对断供表示无能为力;程序员面试锦集| 开发者周刊

  • 在其他国家被揭穿骗子又盯上非洲? 这几个骗子公司可把非洲人民坑苦了……

真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522595.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三大新功能发布 阿里云短视频SDK玩法多 优惠更多

摘要&#xff1a; 近日&#xff0c;阿里云短视频SDK进行了重大升级&#xff0c;对视频滤镜和视频特效方面进行了功能更新&#xff0c;助力用户快速接入带来更多的玩法。 短视频SDK介绍 短视频SDK提供短视频录制、导入和编辑的高级功能&#xff0c;支持多种分辨率选择、实时美颜…

html asp 日历_全球第一本《2021世界艺术日历》,正式发售!

原标题&#xff1a;全球第一本《2021世界艺术日历》&#xff0c;正式发售&#xff01;艺术&#xff0c;人类精神文明的美丽结晶。作为一名资深艺术爱好者&#xff0c;多希望 每天都能和名画为伴&#xff0c;接受各个时期艺术佳作的熏陶。 记得2020年的开头&#xff0c; 我买了好…

三星计划替换所有日产半导体材料;美企过度响应“禁令”,华为被曝祭出数亿索赔;苹果iPhone 11发布日期刚刚泄露...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

button hover逐渐变色_两当水库界桩@产品长久不变色 - 两当安全防护

河北合诺电力设备有限公司成立于2009年&#xff0c;位于河北省石家庄市新华区&#xff0c;是一家富有高科技生产力与完善服务体系的综合性企业。公司集科研、生产、销售及服务于一体&#xff0c;厂区占地50余亩&#xff0c;现有员工135人&#xff0c;专业资质技术人员26人&…

I+关系网络分析发布,提供完整的可视化分析和关系引擎功能

摘要&#xff1a; I关系网络分析是以OLP模型为核心&#xff0c;面向业务快速建模&#xff0c;为开发者和终端用户提供大数据关系计算引擎&#xff08;含API服务&#xff09;和可视化交互分析能力&#xff0c;面向安防、关税、银行、保险、互联网等提供的产品化方案。目前&#…

赞,全网开发者都在学的 26 门 AI 课程!

整理 | Jane出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;免费的在线学习课程一直是大多数人学习 AI 知识和技能的方式之一。今天&#xff0c;基于 Github 上一位小姐姐 Chip Huyen 分享的 10 门机器学习课程&#xff0c;AI科技大本营将这份收藏大礼包进…

结构损伤检测与智能诊断 陈长征_宿迁厂房安全检测多少钱介绍说明

检测与鉴定1. 混凝土类材料(混凝土试块和混凝土芯样抗压强度、砂浆试块抗压强度)试验&#xff1b;2. 钢筋及接头(钢筋原材和焊接接头、钢筋后锚固件)力学工艺性能试验&#xff1b;3. 混凝土结构检测混凝土预制构件结构性能检测、钻芯法检测混凝土强度、混凝土回弹法检测强度、钢…

阿里云ECS开放批量创建实例接口,实现弹性资源的创建

摘要&#xff1a;为了更方便的实现弹性的资源创建&#xff0c;方便用户一次运行多台ECS按量实例来完成应用的开发和部署&#xff0c;阿里云开放了ECS的批量创建实例接口RunInstances&#xff0c;可以单次最多创建100台实例&#xff0c;避免重复调用和创建。点此查看原文&#x…

项目是如何死掉的?太过真实!

戳蓝字“CSDN云计算”关注我们哦&#xff01;做项目多年&#xff0c;见过成功的项目&#xff0c;也见过太多失败的项目&#xff1b;成功或失败&#xff0c;都是项目的宿命。我总结了项目失败的几点要素&#xff0c;供有志于将项目做失败的同学参考。绝大多数人在面对失败的可能…

igmp是哪个层协议_通俗易懂网络协议(IP)

之前写过一篇《通俗易懂TCP/IP(概述)》&#xff0c;广受欢迎和好评&#xff0c;有网友催更&#xff0c;便抽空续写IP章节&#xff0c;回应粉丝期待。TCP/IP网络模型TCP/IP网络模型分为4层&#xff0c;自下而上分布为链路层(又叫网络接口层)、网络层、传输层、应用层。链路层&am…

opporeno3pro可以刷鸿蒙系统吗,华为P40放大招!鸿蒙系统+120Hz+徕卡五摄,明年2月发布!...

自OPPO副总裁沈义人在微博上多番爆料后&#xff0c;机粉们对于OPPO Reno3 Pro的期待值上升到了一个新高度。在期待了近一个月后&#xff0c;12月26日&#xff0c;全新OPPO Reno3系列将正式发布——OPPO Reno3 Pro这次真的来了&#xff01;而与此同时&#xff0c;OPPO也在近期官…

三款新功能发布,助力阿里云表格存储再次升级

摘要&#xff1a;阿里云表格存储于近期功能再升级&#xff0c;升级后的表格存储支持对DataHub采集的数据进行持久化存储&#xff0c;其Python SDK新增支持Python 3.x&#xff0c;以及最新发布的TimelineLib能够帮助用户轻松构建千万级IM和Feed流系统。点此查看原文&#xff1a;…

基于阿里云实现游戏数据运营(附Demo)

摘要&#xff1a; 原作者&#xff1a;阿里云解决方案架构师&#xff0c;陆宝。通过阅读本文&#xff0c;您可以学会怎样使用阿里云的maxcompute搭建一套数据分析系统。一、总览一个游戏/系统的业务数据分析&#xff0c;总体可以分为图示的几个关键步骤&#xff1a;1、数据采集&…

正式发布!鸿蒙,来了!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 胡巍巍 发自东莞篮球中心出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;鸿蒙真的来了&#xff01;余承东宣布&#xff0c;鸿蒙的英文名叫HarmonyOS&#xff01;对于华为来讲&#xff0c;8月9日是华为开发者大会…

手机屏坏了怎么把里面存东西取出来_手机又卡了,到底是运行不够还是存储容量不足?1分钟搞懂...

现在的主流旗舰机个个都是6128GB起步了&#xff0c;如果手机卡了&#xff0c;是运行内存不够&#xff1f;还是存储容量不足&#xff1f;事实上&#xff0c;很多人都没搞清楚&#xff0c;机身内存和运行内存&#xff0c;其实是两码事。运行内存和机身内存有什么区别&#xff1f;…

在 React 工程中利用 Mota 编写面向对象的业务模型

摘要&#xff1a; ## 简述 React 是一个「视图层」的 UI 框架&#xff0c;以常见的 MVC 来讲 React 仅是 View&#xff0c;而我们在编写应用时&#xff0c;通常还需要关注更加重要的 model&#xff0c;对于 React 来讲&#xff0c;我们常常需要一个「状态管理」库。然而&#x…

惊呆了!颜值爆表的20+位阿里技术女神同一时间向你发出共事邀请!

摘要&#xff1a; 女神节快到了&#xff0c;云栖社区为此推出“三七”女神节特别分享&#xff0c;20位颜值爆表的阿里女神们同一时间向你发出了共事邀请&#xff0c;快来赴约吧&#xff01; 点此查看原文&#xff1a;http://click.aliyun.com/m/43263/ 女神节快要到了&#xff…

做了中台就不会死吗?每年至少40%开发资源是被浪费的!

戳蓝字“CSDN云计算”关注我们哦&#xff01;文/黄哲铿编辑/Emma上周受邀去一家互联网公司做分享&#xff0c;有学员提到一个问题&#xff1a;“技术中台&#xff0c;如何应对那么多小前台的需求&#xff1f;先做哪个&#xff0c;后做哪个&#xff1f;” 这是个比较普遍问题&am…

bucket sort sample sort 并行_IBM布局AI硬件大杀器:硬软件并行开发、开源模拟AI工具包...

原标题&#xff1a;IBM布局AI硬件大杀器&#xff1a;硬软件并行开发、开源模拟AI工具包智东西(公众号&#xff1a;zhidxcom)编 | 子佩智东西11月4日消息&#xff0c;为了解决AI对数据、能源和内存资源的巨大需求&#xff0c;IBM一直致力于开发节能的AI硬件加速器&#xff0c;希…

如何实现32.5万笔/秒的交易峰值?阿里交易系统TMF2.0技术揭秘

摘要&#xff1a; 交易平台遇到的挑战 2017双11&#xff0c;交易峰值达到了32.5万笔/秒&#xff0c;这给整个交易系统带来了非常大的挑战。 一方面&#xff0c;系统需要支撑全集团几十个事业部的所有交易类需求&#xff1a;要考虑如何能更快响应需求、加快发布周期&#xff1b;…