一、使用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.            // 删除之后就没有了
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐