当前位置: 首页 > 科技观察

4个工具助你驾驭Kubernetes

时间:2023-03-13 16:22:16 科技观察

在本系列的第三篇文章Kubernetes基础:首先学习如何使用,我强调你应该学习使用Kubernetes,而不是构建它。我还解释说,在Kubernetes中,您必须学习一组最小的原语来为应用程序建模。我想强调这一点:您需要学习的原语集是最简单的原语集,您可以通过它们学习如何实现生产级应用程序部署(即高可用性[HA]、多容器、多应用程序).换句话说,学习Kubernetes内置的一组原语比学习集群软件、集群文件系统、负载均衡器、疯狂的Apache和Nginx配置、路由器、交换机、防火墙和存储后端更容易——这些是你的什么需要在传统IT环境(虚拟或裸机)中为简单的HA应用程序建模。在第四篇文章中,我将分享一些工具,帮助您快速学习掌握Kubernetes。1.Katacoda毫无疑问,Katacoda是试驾Kubernetes集群最简单的方法。只需单击一下,五秒钟后,您就可以将基于Web的终端直接连接到正在运行的Kubernetes集群中。这很好用和学习。我什至将它用于演示和测试新想法。Katacoda提供了一个完整的临时环境,您可以在使用完后对其进行回收。OpenShiftPlaygroundKubernetesPlaygroundKatacoda提供了一个暂存环境和一个更深入的实验室环境。例如,过去三四年我一直在教授的LinuxContainerInternalsLab是用Katacoda构建的。Katacoda在其主站点上维护着多个Kubernetes和云教程,并与RedHat合作以支持OpenShift的专用学习门户。看看吧,它们是极好的学习资源。刚开始学开自卸车的时候,最好多观察一下别人是怎么开车的。2.Podmangeneratekubepodmangeneratekube命令是一个很棒的子命令,可以帮助用户自然地从运行简单容器的简单容器引擎过渡到运行许多容器的集群用例(如我在上一篇文章中所述)。Podman通过让您启动一个新容器,然后导出这个工作的KubeYAML,并在Kubernetes中启动它来做到这一点。看看这个(你可以在Katacoda实验室中运行它,它已经有Podman和OpenShift)。首先,请注意运行容器的语法与Docker非常相似:podmanrun-dtntwo-pizzaquay.io/fatherlinux/two-pizza但这在其他容器引擎中不可用:podmangeneratekubetwo-pizza输出:#GenerationofKubernetesYAMListillunderdevelopment!##保存此文件的输出并使用kubectlcreate-f将其导入Kubernetes。##使用podman-1.3.1api版本创建:v1kind:Podmetadata:creationTimestamp:"2019-06-07T08:08:12Z"labels:app:two-pizzaname:two-pizzaspec:containers:-command:-/bin/sh--c-bash-c'whiletrue;do/usr/bin/nc-l-p33068080/TCP4mservice/mysqlClusterIP172.30.13.1953306/TCP4mNAMEREVISIONDESIREDCURRENTTRIGGEREDBYdeploymentconfig.apps.openshift.io/cakeimagephp-mysql-example(cakeimagephpconfig,cake111-mysql-example:latest)deploymentconfig.apps.openshift.io/mysql111config,图像(mysql:5.7)NAMETYPEFROMLATESTbuildconfig.build.openshift.io/cakephp-mysql-exampleSourceGit1NAMETYPEFROMSTATUSSTARTEDDURATIONbuild.build.openshift.io/cakephp-mysql-example-1SourceGit@47a951eComplete4minutesago2m27sNAMEDOCKERREPOTAGSUPDATEDimagestream.image.openshift.io/cakephp-mysql-exampledocker-registry.default.svc:5000/example/cakephp-mysql-examplelatestAboutaminuteagoNAMEHOST/PORTPATHSERVICESPORTTERMINATIONWILDCARDroute.route.openshift.io/cakephp-mysql-examplecakephp-mysql-example-example.2886795271-80-rhsummit1.environments.katacoda.com好处是你可以删除豆荚,观察复制控制器如何重新创建它们、扩展pod等。您可以使用模板并为其他应用程序更改它们(这是我第一次开始时所做的)。4.对于VisualStudioCode,我把我最喜欢的放在了***。我的大部分工作都使用vi,但我一直无法为Kubernetes找到一个好的语法高亮器和代码完成插件(如果有的话请告诉我)。相反,我发现微软的VSCode有一套杀手级的插件,可以完成Kubernetes资源的创建并提供样板。VSCode插件UI首先,安装上图中显示的Kubernetes和YAML插件。VSCode中的自动完成然后您可以从头开始创建新的YAML文件并自动完成Kubernetes资源。上面的例子显示了一个服务。VSCode自动完成填充对象的样板当您使用自动完成并选择服务资源时,它将为该对象填充一些模板。这在您第一次学习使用Kubernetes时非常有用。您可以构建pod、服务、复制控制器、部署等。当您从头开始构建这些文件,甚至修改您使用podmangeneratekube创建的文件时,这是一个非常好的功能。总结这四个工具(如果算上两个插件,则为六个)将帮助您学习利用Kubernetes,而不是构建或装备它。在本系列的最后一篇文章中,我将讨论为什么Kubernetes非常适合运行这么多不同的工作负载。