2023-9-14 myluzh Kubernetes
0x01 Job(一次性任务) 它的任务是在一个Pod中运行一个容器,容器会输出一句话"Hello, Kubernetes!"。在容器运行完毕后,Job会自动停止Pod并退出。如果容器在运行过程中失败,Job会重新尝试4次(backoffLimit设置为4)。 apiVersion: batch/v1 kind: Job metadata: name: myjob spec: template: spec: containers: - name: mycontainer image: myimage:latest command: ["echo", "Hello, Kubernetes!"] restartPolicy: Never backoffLimit: 4 0x02 Cronjob 定时任务 定义了一个名为 my-cronjob 的 CronJob,它将每分钟创建一个 Pod。Pod 中包含一个名为 my-container 的容器,它的启动命令是 echo "Hello, Kubernetes!"。...2023-9-14 myluzh Kubernetes
0x01 介绍 DaemonSet是Kubernetes中的一种Controller,用于确保在集群中的每个节点上都运行一份Pod副本。它通常被用于运行某些系统级别的后台任务,例如日志收集器、监控代理等。DaemonSet保证了每个节点都有一个Pod副本在运行,如果有新的节点加入到集群中,它会自动在新节点上创建一个新的Pod副本。如果某个节点从集群中删除,它会自动将该节点上的Pod副本删除。这使得DaemonSet非常适合运行跨多个节点的后台任务。 0x02 示例 下面是一个DaemonSet的简单YAML示例: apiVersion: apps/v1 kind: DaemonSet metadata: name: my-daemonset spec: selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: my-container...2023-9-13 myluzh Kubernetes
0x01 无状态和有状态区别 1.无状态 *认为Pod都是一样的 *没有顺序要求 *不用考虑在哪个node运行 *可以随意进行伸缩扩展 2.有状态 *上面无状态的因素都需要考虑到 *让每个pod独立的,保持pod启动顺序和唯一性 *唯一的网络标识符,持久存储 *有序的(比如mysql主从) StatefulSet是用于管理有状态应用的控制器,它为每个Pod分配唯一的标识符,并按照一定规则生成唯一的FQDN(Fully Qualified Domain Name)。这使得有状态应用能够更好地适应动态的集群环境。 而Deployment则是用于管理无状态应用的控制器,它不保证每个Pod的标识符和FQDN的唯一性,也不保证Pod的启动顺序。 0x02 部署有状态应用 StatefulSet yaml文件如下,注意:ClusterIP为none(无头service) apiVersion: apps/v1 kind: StatefulSet metadata: name: n...标签: k8s StatefulSet
2023-9-13 myluzh Kubernetes
0x01 概述和应用场景 1.什么是Controller? *在集群上管理和运行容器的对象 2.Pod跟Controller的关系? *Pod是通过Controller来实现应用的运维(比如伸缩,滚动升级等) *Pod和Controller之间通过label标签建立关系(selector) 3.Deployment应用场景 *部署无状态应用(应用场景:web服务 微服务) *管理Pod和ReplicaSet *部署滚等升级等功能 0x02 发布应用 # 1.导出yaml文件 [root@master deployment]# kubectl create deployment web --image=nginx --dry-run=client -o yaml > web.yaml # 2.通过yaml部署 [root@mas...标签: k8s controller deployment
2023-9-10 myluzh Kubernetes
0x01 Service概述 1.Service存在的意义 *防止Pod失联(服务发现) *定义一组Pod访问策略(负载均衡) 2.Pod跟Service关系 *通过Service来实现负载均衡 *根据label和selector标签建立关联的 0x02 Service三种类型 ClusterIP:集群内部使用 apiVersion: v1 kind: Service metadata: name: my-service spec: type: ClusterIP selector: app: my-app ports: - protocol: TCP port: 80 targetPort: 8080 NodePort:会在集群中的所有主机上打开一个指定的端口。 apiVersion: v1 kind: Service met...