Linux——pod的控制器

ops/2024/10/19 21:37:11/
  1. deployment
    1. 无状态服务进行部署
    2. 滚动更新,支持回滚
      • 按照25%的比例进行更新
    3. 水平扩展和收缩
      • 指定pod副本数量 ---- replicaset
  2. statefulset
    1. 有状态服务的部署
      1. 固定pod的网络ID 和 持久卷的挂载
      2. pod将拥有固定的pod-name
        •    eg: 以24 号实验为例:  

                                          创建了一个名为web的statefulset,设置副本数为2,启动两个pod。pod的名字是固定的 web-0/web-1,后续更新pod的镜像。新启动的pod也会继续使用相同的pod名称。

                                          通过pvc 实现数据的持久化。根据副本数创建pvc。pvc的命令规则为statefulset的名称-podtemplate 字段中规定的名称 - 编号,编号相等的pvc和pod 进行一一对应的挂载。

    2. 同样支持滚动更新、回滚、pod的水平扩展和收缩

    3. pod 在创建、删除、更新时,会根据编号实现pod的有序控制 

  3. daemonset

[root@control ~]# vim daemon-set.yml
apiVersion: apps/v1				// 前7行是所有资源在配置时,应该规定的基本信息
kind: DaemonSet					// 确定资源的种类
metadata:						//  当前资源的元数据name: fluentd-elasticsearch		// 资源的名称namespace: kube-system			// 资源属于哪个名称空间,未做规定的情况下
// 就是default名称空间labels:							// 对资源本身设定的标签k8s-app: fluentd-logging			// 标签的值
spec:							// 针对资源的声明selector:						// 设置标签matchLabels:					// 匹配的标签name: fluentd-elasticsearch	template:						// pod的模板metadata:					// 每一个pod的元数据labels:						// pod的标签name: fluentd-elasticsearchspec:						// pod的配置声明tolerations:					// pod的容忍度,通过容忍度可以让pod在一些资源不
//足或者节点不适合运行pod的情况下,启动pod# 这些容忍度设置是为了让该守护进程集在控制平面节点上运行# 如果你不希望自己的控制平面节点运行 Pod,可以删除它们- key: node-role.kubernetes.io/control-plane		// 这三行配置的效果的允许控制器
//在控制节点启动podoperator: Exists					// 操作符,即上一行的键存在effect: NoSchedule					// 第一行的键的值- key: node-role.kubernetes.io/master	// 和上面三行的作用一样,允许在master 
// 节点上调度podoperator: Existseffect: NoSchedulecontainers:							// pod中容器的设置- name: fluentd-elasticsearch			// 指定容器的名字image: quay.io/fluentd_elasticsearch/fluentd:v2.5.2	// 容器镜像resources:						// 设定容器的资源获取limits:							// 限制容器对于所在节点的资源使用memory: 200Mi				// 内存不超过200mrequests:						// 容器资源的软限制cpu: 100m					// cpu 使用率不超过100m
// 一个cpu核心对应1000m
// 容器的cpu使用率不超过10%memory: 200Mi				// 内存使用不超过200mvolumeMounts:					// 容器内卷的挂载- name: varlog						// 卷的名字mountPath: /var/log				// 挂载点# 可能需要设置较高的优先级类以确保 DaemonSet Pod 可以抢占正在运行的 Pod# priorityClassName: importantterminationGracePeriodSeconds: 30		// 结束pod时,会等待30Svolumes:							// 将容器需要挂载的卷创建完成- name: varlog						// 卷的名称hostPath:							// 存储卷的驱动:宿主机目录path: /var/log					// 宿主机的目录的路径
[root@control ~]# kubectl create -f daemon-set.yml
daemonset.apps/fluentd-elasticsearch created

因为实际有三个节点是符合pod的调度要求,在三个节点上各启动一个pod

[root@control ~]# kubectl get pod -n kube-system --watch -o wide
NAME                              READY   STATUS    RESTARTS        AGE     IP               NODE      NOMINATED NODE   READINESS GATES
coredns-fcd6c9c4-cvcvt            1/1     Running   3 (6h34m ago)   5d4h    10.244.1.28      node1     <none>           <none>
coredns-fcd6c9c4-m9kxk            1/1     Running   3 (6h34m ago)   5d4h    10.244.1.27      node1     <none>           <none>
etcd-control                      1/1     Running   3 (6h34m ago)   5d4h    192.168.110.10   control   <none>           <none>
fluentd-elasticsearch-jd922       1/1     Running   0               35s     10.244.2.33      node2     <none>           <none>
fluentd-elasticsearch-l4962       1/1     Running   0               35s     10.244.0.3       control   <none>           <none>
fluentd-elasticsearch-rn64j       1/1     Running   0               35s     10.244.1.30      node1     <none>           <none>
kube-apiserver-control            1/1     Running   3 (6h34m ago)   5d4h    192.168.110.10   control   <none>           <none>
kube-controller-manager-control   1/1     Running   3 (6h34m ago)   5d4h    192.168.110.10   control   <none>           <none>
kube-proxy-54j4f                  1/1     Running   3 (6h34m ago)   5d4h    192.168.110.11   node1     <none>           <none>
kube-proxy-c8cdj                  1/1     Running   3 (6h34m ago)   5d4h    192.168.110.10   control   <none>           <none>
kube-proxy-v7td8                  1/1     Running   3 (6h34m ago)   5d4h    192.168.110.22   node2     <none>           <none>
kube-scheduler-control            1/1     Running   0               4h38m   192.168.110.10   control   <none>           <none>
metrics-server-86c648b4bf-tfhjp   1/1     Running   2 (6h34m ago)   47h     10.244.2.27      node2     <none>           <none>
^C[root@control ~]#
[root@control ~]# kubectl get  daemonsets.apps/fluentd-elasticsearch  -n kube-system
NAME                    DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
fluentd-elasticsearch   3         3         3       3            3           <none>          3m45s
[root@control ~]# kubectl edit  daemonsets.apps/fluentd-elasticsearch  -n kube-system
daemonset.apps/fluentd-elasticsearch edited
找到toleration,将设置的容忍度键删除,一共需要删除7行。删除后,保存退出,变更自动生效
[root@control ~]# kubectl edit  daemonsets.apps/fluentd-elasticsearch  -n kube-system
Edit cancelled, no changes made.
[root@control ~]# kubectl get pod -n kube-system --watch -o wide
NAME                              READY   STATUS    RESTARTS        AGE     IP               NODE      NOMINATED NODE   READINESS GATES
coredns-fcd6c9c4-cvcvt            1/1     Running   3 (6h38m ago)   5d4h    10.244.1.28      node1     <none>           <none>
coredns-fcd6c9c4-m9kxk            1/1     Running   3 (6h38m ago)   5d4h    10.244.1.27      node1     <none>           <none>
etcd-control                      1/1     Running   3 (6h38m ago)   5d4h    192.168.110.10   control   <none>           <none>
fluentd-elasticsearch-2vkk8       1/1     Running   0               17s     10.244.1.31      node1     <none>           <none>
fluentd-elasticsearch-xsbcc       1/1     Running   0               21s     10.244.2.34      node2     <none>           <none>
kube-apiserver-control            1/1     Running   3 (6h38m ago)   5d4h    192.168.110.10   control   <none>           <none>
kube-controller-manager-control   1/1     Running   3 (6h38m ago)   5d4h    192.168.110.10   control   <none>           <none>
kube-proxy-54j4f                  1/1     Running   3 (6h38m ago)   5d4h    192.168.110.11   node1     <none>           <none>
kube-proxy-c8cdj                  1/1     Running   3 (6h38m ago)   5d4h    192.168.110.10   control   <none>           <none>
kube-proxy-v7td8                  1/1     Running   3 (6h38m ago)   5d4h    192.168.110.22   node2     <none>           <none>
kube-scheduler-control            1/1     Running   0               4h43m   192.168.110.10   control   <none>           <none>
metrics-server-86c648b4bf-tfhjp   1/1     Running   2 (6h38m ago)   47h     10.244.2.27      node2     <none>           <non

可以观察到pod 数量由3个降低为2个。因为能够调度pod的节点数由三个变成2。

在第一次创建后,pod状态出现镜像拉取失败,如图:

可以去报错的节点上,手动拉取一下。

[root@node1 ~]#  crictl -r unix:///var/run/containerd/containerd.sock pull quay.io/fluentd_elasticsearch/fluentd:v2.5.2


http://www.ppmy.cn/ops/118100.html

相关文章

MySQL之基础篇

数据库操作 1.查看当前的数据库版本 select version(); 2.显示所有数据库 show databases; 3.创建数据库 create [if not exists] database 数据库名 character set 字符编码集 collate 排序规则&#xff1b; 我们这里提前说一下 被方括号括起来的代码 表示可写可不写 示例…

PostgreSQL分区表

一、分区表的作用 1. 将数据按指定的方法打算到子分区&#xff0c;提高 SQL 性能。 2. 解决时序类、流水类业务大表在进行老旧数据清理时 delete 引起的性能及磁盘空间碎片问题。 3. 利用子分区卸载、重新挂载功能&#xff0c;对数据进行暂时性的隐藏、维护。 4. 数据归档治…

如何优化JVM性能:调优参数技巧

在现代Java应用中&#xff0c;JVM的性能直接影响到应用的整体表现。通过合理配置JVM参数&#xff0c;可以显著提升系统的运行效率。本文将介绍一些常见的JVM参数及其调优技巧&#xff0c;帮助开发者根据应用需求进行优化。 1. 堆内存设置 参数: -Xms&#xff08;初始堆大小&a…

【JAVA-数据结构】初识集合框架

时隔几个月&#xff0c;小主又回来了&#xff0c;近期我们来谈谈数据结构相关内容&#xff0c;这部分数据结构&#xff0c;我们将使用JAVA进行相关讲解&#xff0c;感兴趣的小伙伴持续关注&#xff0c;防止走丢。 1. 什么是集合框架 Java 集合框架 Java Collection Framework &…

LeetCode 35. 搜索插入位置

LeetCode 35. 搜索插入位置 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target …

cesium的学习过程和使用案例

1.首先我们先了解下什么是cesium Cesium是一个基于JavaScript开发的开源WebGL三维地球和地图可视化库。以下是对Cesium的具体介绍&#xff1a; 基本概述 定义与功能&#xff1a;Cesium是一个用于创建世界级的3D地理空间应用程序的开源库&#xff0c;它利用现代Web技术如HTML5、…

lumen安装错误的解决Failed to download sebastian/recursion-context from dist

错误提示&#xff1a; Failed to download sebastian/recursion-context from dist: The zip extension and unzip command are both missing, skipping. The php.ini used by your command-line PHP is 解决办法&#xff1a; 打开php.ini&#xff08;对应版本的&#xff09; ;…

[atcoder abc 372 c] Count ABC Again

建议在洛谷查看。 当修改了第 i i i 个字符&#xff0c;只对第 i − 2 i - 2 i−2 到 i 2 i 2 i2 有影响。 因此先统计出开始时的 abc 个数&#xff0c;改变第 i i i 个位置后&#xff0c;对上面的区间进行修改即可。 #include<bits/stdc.h> using namespace std…