一,k8s的资源对象
Deployment、Service、Pod是k8s最核心的3个资源对象
**Deployment:**最常见的无状态应用的控制器,支持应用的扩缩容、滚动升级等操作。
**Service:**为弹性变动且存在生命周期的Pod对象提供了一个固定的访问接口,用于服务发现和服务访问。
**Pod:**是运行容器以及调度的最小单位。同一个pod可以同时运行多个容器,这些容器共享net、UTS、IPC,除此之外还有USER、PID、MOUNT。
**ReplicationController:**用于确保每个Pod副本在任意时刻都能满足目标数量,简单来说,它用于每个容器或容器组总是运行并且可以访问的:老一代无状态的Pod应用控制器。
**RwplicatSet:**新一代的无状态的Pod应用控制器,它与RC的不同之处在于支持的标签选择器不同,RC只支持等值选择器(键值对),RS还额外支持基于集合的选择器。
**StatefulSet:**用于管理有状态的持久化应用,如database服务程序,它与Deployment不同之处在于,它会为每一个pod创建一个独有的持久性标识符,并确保每个pod之间的顺序性。
**DaemonSet:**用于确保每一个节点都运行了某个pod的一个副本,新增的节点一样会被添加到此类pod,在节点移除时,此pod会被回收。
**Job:**用于管理运行完成后即可终止的应用,例如批量处理做作业任务;
**volume:**pv pvc
ConfigMap:
Secret:
Role:
ClusterRole:
RoleBinding:
cluster RoleBinding:
service account:
Helm:
Pod的生命周期被定义为以下几个阶段。
- Pending:Pod已经被创建,但是一个或者多个容器还未创建,这包括Pod调度阶段,以及容器镜像的下载过程。
- Running:Pod已经被调度到Node,所有容器已经创建,并且至少一个容器在运行或者正在重启。
- Succeeded:Pod中所有容器正常退出。
- Failed:Pod中所有容器退出,至少有一个容器是一次退出的。
环境介绍
主机 | IP地址 | 服务 |
---|---|---|
master | 192.168.1.21 | k8s |
node01 | 192.168.1.22 | k8s |
node02 | 192.168.1.23 | k8s |
二,Namespace:名称空间
默认的名称空间:
Namespace(命名空间)是kubernetes系统中的另一个重要的概念,通过将系统内部的对象“分配”到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。
Kubernetes集群在启动后,会创建一个名为“default”的Namespace,如果不特别指明Namespace,则用户创建的Pod、RC、Service都被系统创建到“default”的Namespace中。
1.查看名称空间
[root@master ~]# kubectl get namespaces
2.查看名称空间详细信息
[root@master ~]# kubectl describe ns default
3.创建名称空间
[root@master ~]# kubectl create ns bdqn
查看一下
[root@master ~]# kubectl get namespaces
4.创建namespace的yaml文件
(1)查看格式
[root@master ~]# kubectl explain ns
//查看nasespace的yaml文件的格式
(2)创建namespace的yaml文件
[root@master ~]# vim test-ns.yaml
apiVersion: v1
kind: Namespace
metadata:
name: test
(3)运行namespace的yaml文件
[root@master ~]# kubectl apply -f test-ns.yaml
(4)查看一下
[root@master ~]# kubectl get ns