云原生
文章平均质量分 81
云原生
_李少侠_
这个作者很懒,什么都没留下…
展开
-
Tekton — 通过tekton-operator部署tekton组件
Tektoncd Operator 作为一个 Kubernetes 的扩展,可以方便快捷地在 Kubernetes 集群上安装、升级和管理 Tekton Pipelines、Dashboard、Triggers 等组件。原创 2023-11-21 10:17:04 · 507 阅读 · 0 评论 -
K3s离线部署
K3s离线部署原创 2022-11-16 00:45:46 · 1236 阅读 · 0 评论 -
如何高效掌控K8s资源变化?K8s Informer实现机制浅析
进入K8s的世界,会发现有很多的Controller,它们都是为了完成某类资源(如pod是通过DeploymentController,ReplicaSetController进行管理)的调谐,目标是保持用户期望的状态。K8s中有几十种类型的资源,如何能让K8s内部以及外部用户方便、高效的获取某类资源的变化,就是本文Informer要实现的。...转载 2022-07-20 16:12:39 · 1181 阅读 · 0 评论 -
Kubernetes — client-go组件
client-go组件介绍原创 2022-07-14 21:09:10 · 1018 阅读 · 0 评论 -
NATS 基础概念
文章目录NATSSubjectsubject层次结构subject通配符匹配单个标记匹配多个标记工作模式Publish-SubscribeRequest-ReplyQueue GroupNATSNATS是一种go语言开发的开源的、轻量、高性能的云原生消息系统,负责处理、发现和交换分布式系统中的消息;nats消息由主题处理,不依赖于网络位置。它提供了应用程序或服务与底层物理网络之间的抽象层。数据被编码并作为消息,由发布者发送。消息由一个或多个订阅者接收、解码和处理。Subject最简单的来说,sub原创 2022-04-16 16:16:02 · 6119 阅读 · 0 评论 -
Kubernetes 组件介绍
Kubernetes组件介绍原创 2022-07-10 19:18:54 · 1058 阅读 · 0 评论 -
Helm — Chart介绍
Charts描述的是一组k8s资源相关的文件集合,用户可以通过简单地修改一些参数使得helm部署的应用符合我们的要求。 目录包括了模板文件。安装应用时,helm会将用户设置的参数值通过模板引擎渲染到模板文件里,然后再将渲染后的结果发送给kubernetes。 这个文件包含了chart的 默认值 。这些值会在用户执行 或 时被相应的命令行参数覆盖。 文件包含了该chart的描述。你可以从模板中访问它。目录 可以 包含其他的chart。Hook 机制Helm 提供了一个 hook 机制允许ch原创 2022-07-06 21:33:18 · 3364 阅读 · 0 评论 -
Helm 介绍
Helm是Kubernetes的包管理工具,类似于centos的yum,能够快速查找、下载和安装软件包。原创 2022-07-05 21:17:51 · 814 阅读 · 0 评论 -
Calico — 架构
文章目录calico/nodeFelix接口管理路由配置ACL配置状态报告BIRD路由分发BGP路由反射器配置confdDikastesCNI 插件Datastore pluginKubernetes API datastore (kdd)etcdIPAM 插件TyphaCalico 是一种容器之间互通的网络方案。支持广泛的平台,包括Kubernetes、OpenShift、Docker EE、OpenStack和bare metal服务。它可以不使用隧道或 NAT 来实现转发,而是巧妙的把所有二三层流原创 2022-05-27 00:09:30 · 784 阅读 · 0 评论 -
KubeVirt — 架构
文章目录什么是KubeVirtKubeVirt架构virt-apivirt-controllervirt-handlervirt-launcherlibvirtd什么是KubeVirtkubevirt是Red Hat开源的以容器方式运行虚拟机的项目,是基于kubernetes运行,利用k8s CRD为增加资源类型VirtualMachineInstance(VMI),使用CRD的方式是由于kubevirt对虚拟机的管理不局限于pod管理接口。通过CRD机制,kubevirt可以自定义额外的操作,来调整常原创 2022-05-19 22:44:23 · 1327 阅读 · 0 评论 -
KubeVirt — 安装KubeVirt及启动VM
文章目录安装KubeVirt启动虚拟机kubernetes version: v1.18.8kubevirt version: v0.35.0安装KubeVirt验证硬件是否支持虚拟化$ virt-host-validate qemu QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists原创 2022-05-15 16:20:13 · 3647 阅读 · 2 评论 -
Kubernetes — 用户认证
文章目录Kubernetes用户身份认证策略X509 客户证书静态令牌文件启动引导令牌Service Account令牌OIDC令牌Webhook 令牌身份认证身份认证代理Kubernetes用户Kubernetes 集群有两类用户:由 Kubernetes 管理的服务账号(Service Account)和普通用户。Kubernetes 假定普通用户是由一个与集群无关的服务通过以下方式之一进行管理的:负责分发私钥的管理员类似 Keystone 或者 Google Accounts 这类用户数据原创 2022-04-14 21:45:02 · 944 阅读 · 0 评论 -
Kubernetes — 创建普通用户
文章目录创建私钥创建CSR批准证书签名请求获取证书绑定角色添加到kubeconfig创建私钥openssl genrsa -out kevin.key 2048openssl req -new -key kevin.key -out kevin.csr创建CSRcat <<EOF | kubectl apply -f -apiVersion: certificates.k8s.io/v1beta1kind: CertificateSigningRequestmetadata:原创 2022-04-13 20:01:34 · 609 阅读 · 0 评论 -
Kubernetes—集群内部网络通信
文章目录前言容器间网络Pod间网络同节点Pod通信不同节点Pod通信Pod与Service间网络前言本文介绍了IPVS模式结合calico网络插件,在不同用例场景下流量是如何在kubernetes集群中流转的。kubernetes的代理模式选择了IPVS模式,它可以将到达cluster ip的流量转发到真实的服务上。而calico使用的是vxlan模式,帮助实现Pod跨节点通信。本文主要简述了以下三种场景的网络通信:容器间网络Pod间网络Pod与Service间网络容器间网络在同一个原创 2022-03-23 00:51:09 · 738 阅读 · 0 评论 -
Prometheus — 架构
文章目录Prometheus架构Pushgateway服务发现存储AlertmanagerPrometheus架构从这个架构图,可以看出 Prometheus 的主要模块包含, Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。它大致使用逻辑是这样:Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。当新拉取的数据大于配置内存缓存区的时候,Prometheus 会原创 2021-10-13 23:55:39 · 2490 阅读 · 0 评论 -
Kubernetes — Volumes
文章目录卷卷类型configMapemptyDirhostPathnfspersistentVolumeClaimsecret持久卷卷模式访问模式类回收策略PersistentVolumeClaims临时卷临时卷类型卷kubernetes 支持许多类型的卷,Pod也可以同时使用任意数量的卷类型。卷又分为临时卷(ephemeral volume)和持久卷(persistent volume)。临时卷类型的生命周期与 Pod 相同,持久卷可以脱离Pod生命周期而独立存在,比 Pod 的存活期长。 当 Po原创 2021-10-12 22:44:25 · 599 阅读 · 0 评论 -
Kubernetes — Service
文章目录Service创建Service三种代理模式userspace 代理模式iptables 代理模式IPVS 代理模式Service类型Headless Service带选择算符的服务无选择算符的服务Service DNSA/AAAA 记录SRV 记录Service每个 Pod 都有自己的 IP 地址,但是在 Deployment 中,在同一时刻运行的 Pod 集合可能与稍后运行该应用程序的 Pod 集合不同。这导致了一个问题: 如果一组 Pod(称为“后端”)为集群内的其他 Pod(称为“前端原创 2021-09-17 23:50:00 · 396 阅读 · 0 评论 -
Kubernetes — StatefulSet
文章目录StatefulSet使用场景限制创建StatefulSetPod标识稳定的网络标识稳定的持久化存储有序的部署和扩缩更新策略StatefulSetDeployment是面向无状态的服务,它们所管理的Pod的IP、名字,启停顺序等都是随机的。但是在部署像MySQL、MongoDB这类的集群时,Deployment明显就有些不合适了。因此kubernetes提供了SeatefulSet,它是Deployment的一种变体,在v1.9版本中已成为GA版本,它为了解决有状态服务的问题,它所管理的Pod原创 2021-09-17 21:17:44 · 441 阅读 · 0 评论 -
Kubernetes — Deployment
文章目录Deployment创建Deployment更新Deployment更新过程回滚Deployment缩放Deployment清理策略策略重新创建 Deployment滚动更新 Deployment最大不可用 (maxUnavailable)最大峰值 (maxSurge)Deployment在k8s中,Pod是最小的创建,管理,可部署单元。但是我们并不会直接去创建Pod,而是通过Deployment来创建Pod,并由Deployment来负责Pod的创建,更新及维护。Deployment 在Po原创 2021-09-17 19:32:09 · 551 阅读 · 0 评论 -
Docker — 存储
文章目录Named Volumesbind mountsNamed Volumes通过docker 命令在主机创建一个卷,用户为容器挂载卷时不用关心卷的位置,可以直接利用卷名进行挂载,为容器提供数据的持久化功能。创建卷$ docker volume create <volume name>挂载卷重点是使用-v选项: -v 宿主机目录:指定挂载到容器内的目录$ docker run -d -p 8080:8080 -v <volume name>:/usr/sh原创 2021-03-15 22:35:37 · 130 阅读 · 0 评论 -
Kong — proxy
文章目录三个配置属性代理如何配置代理服务三个配置属性proxy_listen定义了address/port列表,若一个客户端的地址及端口符合该属性的值,那么kong就会将该客户端的http流量代理到上游服务。该属性的默认端口是8000。admin_listen同样定义了address/port列表,但是其仅提供给管理员访问,其作用是为管理员提供配置能力。默认端口是8001。stream_listen与proxy_listen相似,但只代理TCP,TLS。默认不开启。代理以http原创 2021-03-14 23:48:59 · 525 阅读 · 0 评论 -
Docker — 容器网络
文章目录bridgehostoverlaynonemacvlancontainerbridgebridge 网络适用于在同一Docker主机上运行的容器。为了在不同Docker守护程序主机上运行的容器之间进行通信,您可以在OS级别管理路由,也可以使用 overlay 网络当 Docker Daemon 启动后,会在宿主机上创建一个名为 docker0 的 Linux Bridge,在此宿主机上启动的 Docker Container 都会连接到这个虚拟网桥上。Docker Daemon 会从 dock原创 2021-03-04 00:10:39 · 256 阅读 · 1 评论 -
Kong — 基于docker安装Kong Gateway
文章目录前置条件基于docker安装kong拉取Kong Gateway镜像创建Docker网络启动数据库配置数据库启动gateway验证安装前置条件服务器已安装docker基于docker安装kong拉取Kong Gateway镜像$ docker pull kong-docker-kong-gateway-docker.bintray.io/kong-enterprise-edition:2.3.2.0-alpine由于kong gateway的名字太长,不便于使用,可以给它作个tag通原创 2021-02-26 00:14:01 · 597 阅读 · 0 评论 -
Kong — Overview
文章目录KongPrinciplesFeatureKong gateway中的流量KongKong是一款基于Nginx_Lua模块写的高可用,易扩展由Mashape公司开源的API Gateway项目。由于Kong是基于Nginx的,所以可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。Principles高性能:亚毫秒级处理延迟,可支持关键任务用例和高吞吐量。可扩展性:可插拔的体系结构,可通过Kong的Plugin SDK扩展 K原创 2021-02-24 00:07:06 · 222 阅读 · 0 评论 -
Prometheus — Overview
文章目录Prometheus功能组件架构使用场景PrometheusPrometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus在2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。原创 2021-02-18 22:10:15 · 191 阅读 · 1 评论 -
Docker — 安装及使用
Docker安装如果在主机中存在"docker"和"docker-engine"这样的旧版本,就需要先将它们及其依赖卸载掉。$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ do原创 2021-02-13 00:14:58 · 151 阅读 · 0 评论 -
Kubernetes—持久化存储
目录文章目录目录为什么需要持久化存储k8s的持久化存储方案PV和PVC生命周期通过NFS实现持久化存储服务端安装NFS客户端挂载k8s部署nfs-client为什么需要持久化存储在kubernetes的官方文档中,对Pod的生命周期做出了如下解释:和一个个独立的应用容器一样,Pod 也被认为是相对临时性(而不是长期存在)的实体。 Pod 会被创建、赋予一个唯一的 ID(UID), 并被调度到节点,并在终止(根据重启策略)或删除之前一直运行在该节点。如果一个节点死掉了,调度到该节点 的 Pod 也原创 2021-02-06 15:03:33 · 319 阅读 · 0 评论 -
Kubernetes—利用kubeadm部署高可用集群
目录文章目录目录准备工作配置负载均衡器安装Keepalived安装haproxy启动负载均衡安装Container Runtime安装 kubeadm、kubelet 和 kubectl部署Master主控制平面添加work node安装CNI网络插件关于重新初始化准备工作资源准备虚拟机集群:3 Master、2 Node、1 Load Balancer计算资源:x86-64 processor、2CPU、2GB RAM、20GB free disk space操作系统:CentOS 7.原创 2021-01-26 20:59:55 · 2122 阅读 · 0 评论 -
Kubernetes—Pod
目录文章目录目录为什么需要 Pod真实操作系统里的例子进程组概念Pod = “进程组”为什么 Pod 必须是原子调度单位?Pod要解决的问题共享网络共享存储为什么需要 Pod真实操作系统里的例子如果说 Kubernetes 就是操作系统的话,那么我们不妨看一下真实的操作系统的例子。例如,一个程序叫做 Helloworld,这个 Helloworld 程序实际上是由一组进程组成的,需要注意一下,这里说的进程实际上等同于 Linux 中的线程。因为 Linux 中的线程是轻量级进程,所以如果从 L原创 2021-01-24 13:13:46 · 384 阅读 · 0 评论 -
Kubernetes—核心概念
目录文章目录目录Kubernetes核心概念PodVolumeDeploymentServiceNamespaceKubernetes核心概念PodPod 是 Kubernetes 的一个最小调度以及资源单元。用户可以通过 Kubernetes 的 Pod API 生产一个 Pod,让 Kubernetes 对这个 Pod 进行调度,也就是把它放在某一个 Kubernetes 管理的节点上运行起来。一个 Pod 简单来说是对一组容器的抽象,它里面会包含一个或多个容器。在 Pod 里面,我们也可以去原创 2021-01-22 22:09:23 · 132 阅读 · 0 评论 -
Kubernetes—架构
目录文章目录目录Kubernetes架构Kubernetes架构—masterKubernetes架构—Nodekubernetes—交互流程Kubernetes架构 Kubernetes 架构是一个比较典型的二层架构和 server-client 架构。Master 作为中央的管控节点,会去与 Node 进行一个连接。 所有 UI 的、clients、这些 user 侧的组件,只会和 Master 进行连接,把希望的状态或者想执行的命令下发给 Master,Master 会把这些命令或者状原创 2021-01-22 21:46:57 · 218 阅读 · 1 评论 -
容器与镜像
目录文章目录目录什么是容器?什么是镜像?如何运行容器?容器运行时的生命周期什么是容器?在介绍容器的具体概念之前,先简单回顾一下操作系统是如何管理进程的。首先,当我们登录到操作系统之后,可以通过 ps 等操作看到各式各样的进程,这些进程包括系统自带的服务和用户的应用进程。那么,这些进程都有什么样的特点?第一,这些进程可以相互看到、相互通信;第二,它们使用的是同一个文件系统,可以对同一个文件进行读写操作;第三,这些进程会使用相同的系统资源。这样的三个特点会带来什么问题呢?因为这些进程能够原创 2021-01-21 21:00:58 · 379 阅读 · 0 评论 -
云原生概述
目录文章目录目录云原生技术发展史云原生技术生态现状云原生定义云原生技术范畴云原生思想的两个理论云原生关键技术点云原生技术发展史2004 年— 2007 年,Google 已在内部大规模地使用像 Cgroups 这样的容器技术;2008 年,Google 将 Cgroups 合并进入了 Linux 内核主干;2013 年,Docker 项目正式发布。2014 年,Kubernetes 项目也正式发布。这样的原因也非常容易理解,因为有了容器和 Docker 之后,就需要有一种方式去帮助大家方便、快原创 2021-01-21 20:55:29 · 321 阅读 · 0 评论