首页 > 其他分享> > |NO.Z.00124|——————————|CloudNative|——|KuberNetes&基础标签.V07|------------------------------------------
|NO.Z.00124|——————————|CloudNative|——|KuberNetes&基础标签.V07|------------------------------------------
作者:互联网
[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)
标签:kubectl,V07,kubernetes,yaml,master01,------------------------------------------- 来源: https://www.cnblogs.com/yanqivip/p/16076293.html