Myluzh Blog

Strive to become a dream architect.

K8s笔记-Helm

2023-9-22 myluzh Kubernetes

0x01 Helm 引入 如果使用之前的方式通过yaml部署单一应用,少数服务的应用比较合适。但是如果部署微服务项目,可能有十几个服务,每个服务都有一套yaml文件,需要维护大量yaml文件,版本管理特别不方便。 使用heml可以吧这些yaml作为一个整体管理,实现yaml高效复用,使用heml应用级别的版本管理。 0x02 Helm 介绍 Helm 是一个 Kubernetes 的包管理工具,很方便的将之前打包好的 vaml 文件部署到 kubernetes 。 Helm 有 3 个重要概念: (1)Helm:一个命令行客户端工具,主要用于 Kubernetes 应用 chart 的创建、打包、发布跟管理。 (2)Chart:应用描述,一系列用于描述k8s资源相关文件的集合 (3)Release:基于 Chart 的部署实体一个 chart 被 Helm 运行后将会生成对应的一个release;将在 k8s 中创建出真实运行的资源对象。 0x03 Helm安装与配置仓库 1、Helm安装  官网安装手册:https...

阅读全文>>

标签: k8s helm chart

评论(0) (139)

K8S笔记-Ingress

2023-9-21 myluzh Kubernetes

0x01 Ingress概述 NodePort方式的缺点:之前通过Service里面的NodePort方式把端口号对外暴露,通过IP+端口进行访问,缺点是在每个节点上都会起端口,在访问任何节点+暴露端口号就行实现访问,意味着每个端口只能使用一次,一个端口对应一个服务。实际环境都是使用域名,通过不同的域名跳转到不同的服务端口中。所以这边引入了Ingress。Ingress有很多种,这边使用的是Ingress nginx。 Ingress跟pod关系:pod跟ingress通过service进行关联,ingress作为统一入口,由service关联一组pod。 Ingress工作流程: 0x02 部署ingress controller 1、我选择把ingress controller只部署在了master节点,看个人喜好。也可以通过守护进程方式部署。 2、由于我的matser打了污点,不允许pod进行调度到这个节点,所以在yaml文件里面进行了污点容忍。 [root@master ingress]# cat ingress-controller.yaml apiVersion...

阅读全文>>

标签: k8s nginx Ingress

评论(0) (160)

K8S笔记-集群安全机制(RBAC权限管理)

2023-9-14 myluzh Kubernetes

0x00 概述 一、访问k8s集群的时候,需要经过三个步骤完成具体操作: 第一步 认证     1.传输安全:          对外不暴露8080端口,只能内部访问,对外使用端口6443     2.认证:         客户端身份认证常用方式:             (1)htts证书认证,基于ca证书             (2)http token认证,通过token识别用户             (3)http基本认证,用户名+密码认证 第二步 鉴权(授权)     基于RBAC鉴权(基...

阅读全文>>

标签: k8s 安全 rbac

评论(0) (176)

K8S笔记-Controller-Job和Cronjob(单次任务与定时任务)

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!"。...

阅读全文>>

标签: k8s Job Cronjob

评论(0) (152)

K8S笔记-Controller-DaemonSet(守护进程)

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...

阅读全文>>

标签: k8s DaemonSet

评论(0) (166)

K8S笔记-Controller-StatefulSet(有状态)

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

评论(0) (178)