kubectl apply命令(kubectl apply -f yaml)

kubectl apply命令(kubectl apply -f yaml)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p> 

讯享网

通过命令管理

直接使用命令去操作kubernetes资源

讯享网
通过配置文件管理

①创建一个nginxpod.yaml,内容如下:

 

②通过命令配置去创建资源

讯享网

③也可以通过apply命令

 

4.1 Namespace

Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离

讯享网

这里是引用
讯享网

1》命令方式

 

2》配置方式

首先准备一个yaml文件:ns-dev.yaml

讯享网

然后就可以执行对应的创建和删除命令了:

创建:kubectl create -f ns-dev.yaml

删除:kubectl delete -f ns-dev.yaml

4.2 Pod

在kubernetes的世界中,k8s并不直接处理容器,而是直接管理pod。

Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。

Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。

这里是引用

1》命令方式

 

2》配置操作

创建一个pod-nginx.yaml,内容如下:

讯享网

然后就可以执行对应的创建和删除命令了:

创建:kubectl create -f pod-nginx.yaml

删除:kubectl delete -f pod-nginx.yaml

4.3 Label

 

Label的特点:

  • 一个Label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等等
  • 一个资源对象可以定义任意数量的Label ,同一个Label也可以被添加到任意数量的资源对象上去

一些常用的Label 示例如下:

  • 版本标签:“version”:“release”, “version”:“stable”…
  • 环境标签:“environment”:“dev”,“environment”:“test”,“environment”:“pro”
  • 架构标签:“tier”:“frontend”,“tier”:“backend”

标签定义完毕之后,还要考虑到标签的选择,这就要使用到Label Selector,即:

当前有两种Label Selector:

  • 基于等式的Label Selector

    name = slave: 选择所有包含Label中key=“name”且value=“slave”的对象

    env != production: 选择所有包括Label中的key=“env”且value不等于”production”的对象

  • 基于集合的Label Selector

    name in (master, slave): 选择所有包含Label中的key=“name”且value=“master”或”slave”的对象

    name not in (frontend): 选择所有包含Label中的key=“name”且value不等于”frontend”的对象

1》命令方式添加标签

讯享网

2》配置方式(创建时就打上标签)

 

然后就可以执行对应的更新命令了:kubectl apply -f pod-nginx.yaml

4.4 Deployment

在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝试进行重启或重建pod。(这就是为什么你之前删除pod是删不掉的,你必须删掉控制器才行)

在kubernetes中Pod控制器的种类有很多,本章节只介绍一种:Deployment。

这里是引用

1》命令的方式创建deploy

讯享网

2》配置操作

创建一个deploy-nginx.yaml,内容如下:

在这里插入图片描述

然后就可以执行对应的创建和删除命令了:

创建:kubectl create -f deploy-nginx.yaml

删除:kubectl delete -f deploy-nginx.yaml

4.5 Service

通过上节课的学习,已经能够利用Deployment来创建一组Pod来提供具有高可用性的服务。

虽然每个Pod都会分配一个单独的Pod IP,然而却存在如下两问题:

  • Pod IP 会随着Pod的重建产生变化
  • Pod IP 仅仅是集群内可见的虚拟IP,外部无法访问

这样对于访问这个服务带来了难度。因此,kubernetes设计了Service来解决这个问题。

Service可以看作是一组同类Pod对外的访问接口。借助Service,应用可以方便地实现服务发现和负载均衡。

这里是引用

1》配置方式

创建集群内部可访问的Service

 

创建集群外部也可访问的Service

讯享网

删除Service

 

2》配置方式

创建一个svc-nginx.yaml,内容如下:

讯享网

然后就可以执行对应的创建和删除命令了:

创建:kubectl create -f svc-nginx.yaml

删除:kubectl delete -f svc-nginx.yaml

5.1 Pod介绍

这里是引用

每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类:

  • 用户程序所在的容器,数量可多可少
  • Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个:
    • 可以以它为依据,评估整个Pod的健康状态
    • 可以在根容器上设置Ip地址,其它容器都此Ip(Pod IP),以实现Pod内部的网路通信

下面是Pod的资源清单:

 

5.2 Pod配置

1》配置容器

一言蔽之:

​ 在pod里面自定义两个程序(naginx和busybox),启动pod后发现nginx容器启动成功,但是busybox容器启动失败

创建pod-base.yaml文件,内容如下:

讯享网
 


小讯
上一篇 2025-04-24 19:44
下一篇 2025-05-11 14:44

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/191879.html