Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >4步让你驱动Kubernetes【Containers】

4步让你驱动Kubernetes【Containers】

作者头像
王欣壳
修改于 2019-11-13 02:08:30
修改于 2019-11-13 02:08:30
1.6K00
代码可运行
举报
文章被收录于专栏:Opensoure翻译Opensoure翻译
运行总次数:0
代码可运行

在本系列的第三篇文章中,我介绍了Kubernetes的基础知识:首先学习如何驱动,我强调您应该学会驱动Kubernetes,而不是构建它。我还解释了在Kubernetes中为应用程序建模必须学习的基本元素是最少的。我想强调这一点:您需要学习的原语集是您可以学习的最简单的原语集,以实现生产质量的应用程序部署(即高可用性[HA],多个容器,多个应用程序)。换句话说,学习Kubernetes内置的一组原语比学习集群软件,集群文件系统,负载平衡器,疯狂的Apache配置,疯狂的Nginx配置,路由器,交换机,防火墙和存储后端要容易得多,这一切您将需要在传统IT环境(用于虚拟机或裸机)中为简单的HA应用程序建模。

在第四篇文章中,我将分享一些工具,这些工具将帮助您学习快速驱动Kubernetes。

1. Katacoda

Katacoda是最简单的手动测试Kubernetes集群的方法。一键五秒的时间,您将拥有一个基于Web的终端,直接进入正在运行的Kubernetes集群。它对于娱乐和学习非常重要。我甚至将其用于演示和测试新想法。 Katacoda提供了一个完全短暂的环境,在您使用完该环境后便可以将其回收。

OpenShift playground
OpenShift playground
Kubernetes playground
Kubernetes playground

Katacoda提供了临时性的游乐场和更深的实验室环境。例如,我在过去的三,四年中一直在运行的Linux Container Internals Lab是在Katacoda中建立的。

Katacoda在其主站点上维护了大量Kubernetes和云教程,并与Red Hat合作以支持OpenShift专用的学习门户。两者都可以探索-它们都是出色的学习资源。

当您第一次学习使用自卸车时,最好总是先看别人如何使用。

2. Podman生成kube

Podman generate kube命令是一个出色的命令,它可以帮助用户自然地从运行简单容器的简单容器引擎过渡到运行许多容器的集群用例(如我在上一篇文章中所述)。为此,Podman允许您启动一些容器,然后导出可用的Kube YAML,然后在Kubernetes中启动它们。进行检查(pssst,您可以在此Katacoda实验室中运行它,该实验室已经具有Podman和OpenShift)。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
podman run -dtn two-pizza  quay.io/fatherlinux/two-pizza

但这是其他容器引擎无法做到的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
podman generate kube two-pizza

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Generation of Kubernetes YAML is still under development!
#
# Save the output of this file and use kubectl create -f to import
# it into Kubernetes.
#
# Created with podman-1.3.1
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2019-06-07T08:08:12Z"
  labels:
    app: two-pizza
  name: two-pizza
spec:
  containers:
  - command:
    - /bin/sh
    - -c
    - bash -c 'while true; do /usr/bin/nc -l -p 3306 < /srv/hello.txt; done'
    env:
    - name: PATH
      value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    - name: TERM
      value: xterm
    - name: HOSTNAME
    - name: container
      value: oci
    image: quay.io/fatherlinux/two-pizza:latest
    name: two-pizza
    resources: {}
    securityContext:
      allowPrivilegeEscalation: true
      capabilities: {}
      privileged: false
      readOnlyRootFilesystem: false
    tty: true
    workingDir: /
status: {}
---
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2019-06-07T08:08:12Z"
  labels:
    app: two-pizza
  name: two-pizza
spec:
  selector:
    app: two-pizza
  type: NodePort
status:
  loadBalancer: {}

现在,您有了一些可以正常工作的Kubernetes YAML,您可以将其用作学习和调整的起点。-s标志为您创建了一个服务。 布伦特·鲍德(Brent Baude)甚至还在研究新功能,例如添加卷/持久卷声明。 要进行更深入的研究,请在他的博客文章“ Podman现在可以简化向Kubernetes和CRI-O的过渡”中查看Brent的出色工作。

3. Oc new-app

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
oc new-project -n example
oc new-app -f https://raw.githubusercontent.com/openshift/origin/master/examples/quickstarts/cakephp-mysql.json

使用Oc new-app,您确实可以使用OpenShift开发人员的模板,并在开发用于描述您自己的应用程序的原语时拥有一个已知的良好起点。 运行上述命令后,您的Kubernetes命名空间(在OpenShift中)将由一堆新的已定义资源填充。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
oc get all

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
NAME                                READY     STATUS      RESTARTS   AGE
pod/cakephp-mysql-example-1-build   0/1       Completed   0          4m
pod/cakephp-mysql-example-1-gz65l   1/1       Running     0          1m
pod/mysql-1-nkhqn                   1/1       Running     0          4m

NAME                                            DESIRED   CURRENT   READY     AGE
replicationcontroller/cakephp-mysql-example-1   1         1         1         1m
replicationcontroller/mysql-1                   1         1         1         4m

NAME                            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/cakephp-mysql-example   ClusterIP   172.30.234.135   <none>        8080/TCP   4m
service/mysql                   ClusterIP   172.30.13.195    <none>        3306/TCP   4m

NAME                                                       REVISION   DESIRED   CURRENT   TRIGGERED BY
deploymentconfig.apps.openshift.io/cakephp-mysql-example   1          1         1         config,image(cakephp-mysql-example:latest)
deploymentconfig.apps.openshift.io/mysql                   1          1         1         config,image(mysql:5.7)

NAME                                                   TYPE      FROM      LATEST
buildconfig.build.openshift.io/cakephp-mysql-example   Source    Git       1

NAME                                               TYPE      FROM          STATUS     STARTED         DURATION
build.build.openshift.io/cakephp-mysql-example-1   Source    Git@47a951e   Complete   4 minutes ago   2m27s

NAME                                                   DOCKER REPO                                                      TAGS      UPDATED
imagestream.image.openshift.io/cakephp-mysql-example   docker-registry.default.svc:5000/example/cakephp-mysql-example   latest    About aminute ago

NAME                                             HOST/PORT                                                                         PATH   SERVICES                PORT      TERMINATION   WILDCARD
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代码

我最后保存了我的最爱之一。 我的大部分工作都使用vi,但我从未为Kubernetes找到一个好的语法突出显示和代码完成插件(如果有,请告诉我)。 相反,我发现微软的VS Code有一套杀手er的插件,可以完成Kubernetes资源的创建并提供样板。

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

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

当您使用自动完成功能并选择“服务”资源时,它将为对象填充一些样板。 当您第一次学习驱动Kubernetes时,这是非常好的。 您可以构建Pod,服务,复制控制器,部署等。当您从头开始构建这些文件,甚至修改使用Podman生成kube创建的文件时,这是一个非常不错的功能。

结论

这四个工具(如果算上这两个插件,则为六个)将帮助您学习驱动Kubernetes,而不是构建或装备它。 在系列的最后一篇文章中,我将讨论为什么Kubernetes对于运行这么多不同的工作负载如此激动人心。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java流程图平行四边形_编程技巧之流程图「建议收藏」
我们写的程序都是有逻辑顺序的,即是有流程的,流程图的作用则是对这种逻辑顺序的一种描述,是对解决问题的方法、思路或者算法的图形化的展示。
全栈程序员站长
2022/07/31
1.2K0
java流程图平行四边形_编程技巧之流程图「建议收藏」
流程图中各种图形都代表什么含义
掌握并熟练使用各种流程图图形,才能让我们的流程图显得更加清晰、易读,显得我们更加专业。
98k
2020/09/17
6.4K0
流程图中各种图形都代表什么含义
CSS揭秘:特殊形状绘制自适应椭圆、梯形和平行四边形
实际上我们可以用border-radius单独设定指定水平和垂直半径,形成椭圆角的效果,如下代码的效果就是四个角度是椭圆的角。
用户6256742
2024/05/16
6130
CSS揭秘:特殊形状绘制自适应椭圆、梯形和平行四边形
关于写作那些事之快速上手Mermaid流程图
本文主要介绍了如何快速上手 Mermaid 流程图,不用贴图上传也不用拖拉点拽绘制,基于源码实时渲染流程图,操作简单易上手,广泛被集成于主流编辑器,包括 markdown 写作环境.
雪之梦技术驿站
2020/05/07
3.6K0
关于写作那些事之快速上手Mermaid流程图
如何绘制符合规范的流程图表_流程图画法规范
流程图可以简单地描述一个过程,是对过程、算法、流程的一种图像表示,在技术设计、交流及商业简报等领域有广泛的应用。流程图可分为:数据流程图和作业流程图。
全栈程序员站长
2022/09/20
4K0
如何绘制符合规范的流程图表_流程图画法规范
高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
如果您希望直接访问Vue3导入mermaid的代码,可以直接访问:三、Vue3中如何引入mermaid
watermelo37
2025/01/22
3630
高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
使用多重循环打印平行四边形「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126230.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/23
4150
标准程序流程图的符号及使用约定
一、引言 程序流程图(Progran flowchart)作为一种算法表达工具,早已为工国计算机工作者和广大计算机用户十分熟悉和普通使用.然而它的一个明显缺点在于缺乏统一的规范化符号表示和严格的使用规则.最近,国家标准局批准的国家标准(GB1525-89)<<信息处理–数据流程图,程序流程图,系统流程图,程序网络图和系统资源图的文件编制符号及约定>>为我们推荐了一套标准化符号和使用约定.由于该标准是与国际标准化组织公布的标准ISO5807–85 Information processing–Documentation symbols and comventions for data,program and system flowcharts,program network charts and system resources charts是一致的,这里将其中程序流程图部分摘录出来,并做了一些解释,供读者参考. 根据这一标准画出的程序流程图我们称为标准流程图.
葆宁
2022/01/06
3.2K0
标准程序流程图的符号及使用约定
Typora——如何画流程图 | mermaid-js
画图之前一直使用的是processon,奈何文件数不够使用,所以来学习一波mermaid-js
思索
2024/08/16
2950
Typora——如何画流程图 | mermaid-js
er图和uml图_数据库表结构er图
ER图:实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,ER图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型
全栈程序员站长
2022/09/30
2.6K0
er图和uml图_数据库表结构er图
CSS绘制平行四边形
  当我看到这个动画时,并没有太大的触动。当我想要关闭它时,我突然好奇它是如何绘制一个平行四边形的。   百度给了我三种答案,看图一目了然
我不是费圆
2024/05/24
1050
CSS绘制平行四边形
MarkDown绘图mermaid流程图graph
【注】可以将文本用引号引起,避免引号中出现特殊字符无法正常显示的情况(此时引号可以使用 MarkDown 引号字符编码 &quot; )。
hotarugali
2022/03/01
1.3K0
使用LaTeX的TikZ宏包绘制流程图
类似于css的思想,这个其实就是先定义一下样式然后调用,调用的时候也可以修改,大多数参数也能猜(确信
gyro永不抽风
2021/05/21
4.7K0
初中数学课程与信息技术的整合[通俗易懂]
2.1 基本工具介绍 2 2.1.1滑动的梯子上的猫 2 2.1.2智能画笔挥洒自如 7 2.1.3选了再做谋而后动 9 2.1.4公式输入即打即现 10 2.1.5动态测量功能多多 15 2.2文本命令应有尽有 18 2.2.1点可不简单 18 2.2.2直线面面观 22 2.2.3圆和圆弧很重要 23 2.2.4圆锥曲线条件多 24 2.2.5函数曲线最有用 25 2.2.6图形变换功能强 26 2.2.7对象组分合遮盖 28 2.2.8文本含变量表格 28 2.2.9测量招数真不少 31 2.2.10动画轨迹和跟踪 32 2.2.11对象属性有奥妙 38 2.3平面几何 40 2.3.1动态几何暗藏玄机 40 2.3.2动点定值眼见为实 42 2.3.3图案组合美不胜收 50 2.3.4课件制作初步体验 58 2.4代数运算 68 2.4.1符号计算力量大 68 2.4.2因式分解渊源长 70 2.4.3赋值语句真方便 72 2.4.4定义函数编程快 74 2.4.5复数联通数与形 77
全栈程序员站长
2022/08/26
1.4K0
Latex绘制流程图
实现效果 ---- codes ---- \documentclass[UTF8]{ctexart} \usepackage{tikz} \usetikzlibrary{shapes,arrows} \begin{document} \pagestyle{empty} % 无页眉页脚 \tikzstyle{startstop} = [rectangle,rounded corners, minimum width=3cm,minimum height=1cm,text centered, draw=b
EltonZheng
2021/01/26
1.7K0
请画出下面流程图对应的N-S图以及PAD图_软件设计流程图示例
在软件程序设计中,我们通常会用到以下几种图,来帮助我们,分析问题,整理逻辑。 我将介绍这四种图的特性,以及区分它们的方法。
全栈程序员站长
2022/09/22
2.7K0
请画出下面流程图对应的N-S图以及PAD图_软件设计流程图示例
使用java代码打印三角形、平行四边形、菱形
/* 双重循环: 外循环控制:行 内层循环控制:列 */ //最最重要的是记住:外层循环控制行,内存循环控制列。同时要了解循环的一个执行流程
全栈程序员站长
2022/06/29
5160
【愚公系列】软考高级-架构设计师 075-业务流程设计和分类
业务流程设计(Business Process Design, BPD)是指对组织中的各项活动和操作进行系统化的分析、规划和优化,以提高效率、降低成本、提升质量和增强客户满意度的过程。业务流程设计的核心目的是通过重新思考和重新设计企业内部的工作流程和结构,使其更加高效、灵活和适应变化的市场需求。
愚公搬代码
2024/07/29
2010
个人笔记-markdown使用入门
visual studio code可以编辑markdown文本。可以在visual studio的设置里的extensions,安装 markdown 插件,如 markdownlint, markdown checkbox,Markdown All in One,Markdown Preview Enhance, Markdown TOC, markdown_index, fold, explicit folding。 Markdown Preview Enhanced 内部支持 mermaid, PlantUML, WaveDrom, GraphViz,Vega & Vega-lite,Ditaa 图像渲染。 安装Markdown Preview Enhance后,在右上角选择Markdown Preview Enhance:open preview,也就是三角形,B, I" 的左边的左边,可以看到流程图。右上角"三角形,B, I" 的左边是自带的preview,好像不支持流程图。 Markdown TOC有自动生成目录和标题序号的功能。
hankfu
2021/03/03
2.8K0
Typora使用Mermaid绘制各种图
其他连线:需要将graph关键字改为flowchart,除了新增加的连线形式外,上面三种线的渲染效果也会不同
码客说
2023/06/04
2.1K0
Typora使用Mermaid绘制各种图
推荐阅读
相关推荐
java流程图平行四边形_编程技巧之流程图「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验