[CloudNative:KuberNetes&基础标签.V07] [Applications.KuberNetes][|DevOps|k8s基础|yaml文件详解|yaml实验示例|使用yaml部署容器|]
一、使用yaml文件部署容器
### --- 使用yaml创建资源;默认命名空间下
~~~ 创建一个资源
~~~ kubectl create:创建一个资源 -f:指定创建资源的文件是谁
[root@k8s-master01 ~]# kubectl create -f pod.yaml
pod/Nginx created
### --- 查看创建的资源
~~~ 处于正在创建过程,可能是在拉取镜像的过程
[root@k8s-master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
Nginx 0/1 ContainerCreating 0 14s
### --- 查看资源label
~~~ 这个label就是我们在yaml文件中定义的,一个Nginx,一个frontend。
[root@k8s-master01 ~]# kubectl get po --show-labels
NAME READY STATUS RESTARTS AGE LABELS
Nginx 0/1 ContainerCreating 0 93s app=Nginx,role=frontend
### --- 创建完成之后,默认是在default命名空间下的,因为在yanml文件下给注释掉了命名空间。
[root@k8s-master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
Nginx 1/1 Running 0 5m56s
二、在其它命名空间下创建资源### --- 创建在其它的命名空间下;创建namespace:kube-public
[root@k8s-master01 ~]# kubectl create ns ns_name
### --- 指定namespace创建资源
~~~ -n指定命名空间
[root@k8s-master01 ~]# kubectl create -f pod.yaml -n kube-public
pod/Nginx created
### --- 查看创建的资源
[root@k8s-master01 ~]# kubectl get po -n kube-public
NAME READY STATUS RESTARTS AGE
Nginx 0/1 ContainerCreating 0 13s
### --- 若是你的Pod在这个命名空间下已经有了,它会报已经存在信息。
~~~ 可以使用apply再次运行:(就是你更改yaml文件的一些配置,重新运行容器。
[root@k8s-master01 ~]# kubectl create -f pod.yaml
Error from server (AlreadyExists): error when creating "pod.yaml": pods“Nginx” already exists
三、修改配置参数,重新触发容器### --- 修改配置参数,重新触发容器
[root@k8s-master01 ~]# vim pod.yaml
apiVersion: v1 # 必选,API的版本号
kind: Pod # 必选,类型Pod
Metadata: # 必选,元数据
name: Nginx # 必选,符合RFC 1035规范的Pod名称
#mespace: default # 可选,Pod所在的命名空间,不指定默认为default,可以使用-n 指定namespace
labels: # 可选,标签选择器,一般用于过滤和区分Pod
app: Nginx
role: frontend # 可以写多个
annotations: # 可选,注释列表,可以写多个
app: Nginx
version: v2 # 添加给内容
### --- 重新触发容器
~~~ pod已经被配置
[root@k8s-master01 ~]# kubectl apply -f pod.yaml
Warning: resource pods/Nginx is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
pod/Nginx configured
### --- 查看创建的资源
~~~ 在生产环境下很少单独去创建它的,
~~~ 我们一般会使用一些高级的资源去管理它Deployment StatefulSet DaemonSet去管理Pod。
[root@k8s-master01 ~]# kubectl get po
NAME READY STATUS RESTARTS AGE
Nginx 1/1 Running 0 16m
四、查看容器### --- 查看这个pod的日志
[root@k8s-master01 ~]# kubectl logs -f Nginx
五、删除创建的资源### --- 删除创建的Pod
~~~ 所以用Pod去管理的话,业务很难去保证是否正常,
~~~ 所以在生产环境中是不会直接用pod去部署我们的应用的,
~~~ 一般都会用到更高级的资源:Deployment StatefulSet DaemonSet去管理Pod。
[root@k8s-master01 ~]# kubectl delete po Nginx
pod "Nginx" deleted
[root@k8s-master01 ~]# kubectl delete po Nginx -n kube-public
pod "Nginx" deleted
[root@k8s-master01 ~]# kubectl get po
No resources found in default namespace. // 删除之后就没有了
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
来自为知笔记(Wiz)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。