通过模版生成yaml文件
1. kubectl create deployment web --image=nginx -o yaml --dry-run>test.yaml
以nginx为镜像生成一个名为web的yaml文件,导出到test.yaml (--dry-run不会真正的创建镜像,只是尝试运行)
2. kubectl get deploy nginx -o=yaml --export > nginx.yaml
查看一个目前已经部署的镜像:kubectl get deploy,再导出nginx的配置,生成一个nginx.yaml文件
新版2.0摒弃了一些过时api改为如下:
kubectl get deploy nginx -o=yaml > nginx.yaml
yaml文件组成部分
详细解释:
apiVersion:此处值是v1,这个版本号需要根据安装的Kubernetes版本和资源类型进行变化,记住不是写死的。
kind:此处创建的是Pod,根据实际情况,此处资源类型可以是Deployment、Job、Ingress、Service等。
metadata:包含Pod的一些meta信息,比如名称、namespace、标签等信息。
spec:包括一些container,storage,volume以及其他Kubernetes需要的参数,以及诸如是否在容器失败时重新启动容器的属性。可在特定Kubernetes API找到完整的Kubernetes Pod的属性。
可以通过replicas来增加Deployment中(也可以是其他的资源类型)的Pods数量,如果YAML 文件将 replicas 设置为 4,指定该 Deployment 应有 4 个 Pods
例子
一个典型的容器定义:(一个简单的最小定义:一个名字(front-end)、基于nginx的镜像,以及容器将会监听的指定端口号(80))
除了上述的基本属性外,还能够指定复杂的属性,包括容器启动运行的命令、使用的参数、工作目录以及每次实例化是否拉取新的副本。还可以指定更深入的信息,例如容器的退出日志的位置。容器可选的设置属性包括:name、image、command、args、workingDir、ports、env、resource、volumeMounts、livenessProbe、readinessProbe、livecycle、terminationMessagePath、imagePullPolicy、securityContext、stdin、stdinOnce、tty
通过yaml文件创建Deployment
官方文档:https://kubernetes.io/zh/docs/tasks/run-application/run-stateless-application-deployment/
1. (不存在yaml文件时)创建yaml文件,如通过模版生成:
kubectl create deployment web --image=nginx -o yaml --dry-run>test.yaml
kubectl apply -f test.yaml
2. 查看创建的deployment的详细信息:
kubectl describe deploy web
3. 列出Deployment创建的Pods
kubectl get pods -l app=web
4. 展示某一个 Pod 信息:
kubectl describe pod <pod-name>
5. 更新Deployment:重新apply即可
6. 删除Deployment
kubectl delete deployment web
使用yaml创建Pod
摘抄至:https://www.jianshu.com/p/ffb1ceb7aba9(该文章十分完整,详细描述了yaml文件中每个标签的名称意义,故在本文中不再赘述)
如下图yaml:通过yaml文件创建一个Pod,该pod内运行两个容器:front-end和ptest,两个容器的镜像不同,容器需要监听的端口号也不同,一个为80,一个为5000
网友评论