推荐使用3A服务器搭建好玩的实验,更方便1.ymal介绍k8s是容器编排引擎,使用yaml编排部署应用特点:1.缩进表示层级关系2.tab”不支持制表符”缩进。缩进需要空格3.一般开头缩进两个空格4.关键字字符后缩进一个空格,如冒号和逗号需要缩进一个字符5.“---”表示YAML格式,开头6.“#”表示以下面的yaml为例进行注释,相当于kubectlcreatedeploymentweb--image=lizhenliang/java-demo--replicas=3-ndefault2。我们在编写示例yaml时,可能会出现API版本不一致导致错误的情况。可以通过命令kubectlapi-resources|grepDeployment1查看版本。其中,一般定义了两个标签,分别由projects和applications组成。#Key:value可以任意定义。比如project:ecapp:portal2,matchLabels必须和下面的labels一致,否则apply会报错。例如,以下用于创建部署的yamlkind:Deploymentmetadata:name:web666namespace:team-aspec:replicas:3selector:matchLabels:project:ecapp:portaltemplate:metadata:labels:project:ecapp:portalspec:containers:-name:webimage:lizhenliang/java-demo:latest其中标签可以有两个,以键值对的形式存储,但是matchLabels的值必须和标签相等,不相等会报错,service使用label控制podreplicas为副本数,image为拉取镜像的名称2.创建serviceapiVersion:v1kind:Servicemetadata:name:web666namespace:team-aspec:ports:port:80protocol:TCPtargetPort:8080selector:project:ecapp:portaltype:NodePortlabel和namespace必须和deployment一致才能执行这两个yaml文件kubectlapply-fdeployment.yamlkubectlapply-fservice.yam查看服务成功3.快速生成yaml直接写yaml文件比较麻烦,容易出错,所以提供以下方法获取标准yaml文件,修改3.1生成新的yaml1,通过命令获取yaml,可以加上--dry-run=client-oyaml命令后创建服务提取yaml,然后根据获取的yaml进行修改。比如kubectlcreatedeploymentjava-demo--image=nginx:1.20-nteam-a--dry-run=client-oyaml会输出yaml,加上重定向export即可,其中creationTimestamp和status:{}即可被删除apiVersion:apps/v1kind:Deploymentmetadata:creationTimestamp:nulllabels:app:java-demoname:java-demonamespace:team-aspec:replicas:1selector:matchLabels:app:java-demostrategy:{}template:metadata:creationTimestamp:nulllabels:app:java-demospec:containers:-image:nginx:1.20name:java-demoresources:{}status:{}3.2添加现有服务yaml导出k8s支持导出运行服务的yaml文件。使用get命令添加-oyaml(xxx为服务名)kubectlgetdeploymentxxx-oyaml注意,此yaml内容不能直接用于其他k8s环境。如果在其他环境使用,需要删除。排除的内容如下:其余内容为标准yaml,可直接使用也可作为模板修改3.3关键字提示kubectlexplainpods.spec.containerskubectlexplaindeployment3.4官网搜索直接在官网搜索关键字,官方将Demonstration示例官网地址:https://kubernetes.io/zh/docs...
