随笔分类 - 分布式技术
摘要:本篇文章将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问。 一、Namespace Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。默认情况下,kubernetes集群中的所有的Pod都
阅读全文
摘要:一、资源管理介绍 在kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理kubernetes。 kubernetes的本质上就是一个集群系统,用户可以在集群中部署各种服务,所谓的部署服务,其实就是在kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。 kube
阅读全文
摘要:一、应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代:传统部署、虚拟化部署、容器化部署 1、传统部署 互联网早期,会直接将应用程序部署在物理机上。 优点:简单,不需要其它技术的参与 缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响 2、虚拟化部署 可
阅读全文
摘要:一、nfs网络存储 kubenetes集群中如果某个节点宕掉了,那么Pod就会漂移到其它节点,此时Pod是一个全新的状态,为了Pod可以使用之前的数据,那么需要将数据进行持久化,以便新的Pod可以继续使用。 1、安装nfs服务器 参考NFS网络文件共享服务 文章,有NFS服务的详细安装与使用,进行n
阅读全文
摘要:一、环境准备 在进行keepalived与haproxy部署之前,需要先进行环境方面的准备: 节点名称 ip master1 192.168.35.12 master2 192.168.35.13 node1 192.168.35.14 VIP 192.168.35.15 环境配置: #1、 关闭防
阅读全文
摘要:一、高可用架构 在之前使用kubernetes的集群中使用的master节点是一个,这样如果一个master节点宕掉那么整个集群就会出现问题,那么为了实现高可用就需要进行多master节点的部署,同时也需要进行多master节点的负载均衡。那么为了实现以上的功能需要使用: keepalived 监控
阅读全文
摘要:一、配置Chart 之前的Chart是通过从设置的仓库中拉取,那么如何自定义Chart呢? 1、创建Chart [root@k8smaster ~]# helm create mychart Creating mychart [root@k8smaster ~]# ll mychart/ 总用量 8
阅读全文
摘要:一、什么是Helm (一)引入 一般部署单一的应用,比如nginx,是通过编写yaml文件然后进行deployment、Service、Ingress这样的过程,但是假如现在需要部署几十个单体应用,这样的部署方式太过于繁琐,那么Helm就可以解决这样的问题,在Helm的官网上是这样介绍它的: The
阅读全文
摘要:一、什么是Ingress 1、引入 在前面使用Service中的NodePort将服务端口号暴漏以供外部访问,这样显然会存在一些弊端: 通过ip+端口的方式对外提供服务 每个节点上都会其端口,访问时通过ip+端口进行访问 每个端口对应一个应用服务 但是在实际中是通过域名来访问应用的,根据域名跳转到不
阅读全文
摘要:一、简介 从ConfigMap名称也能知晓它是和配置相关的功能,ConfigMap 是一个 API 对象, 给我们提供了向容器中注入配置信息的机制,可以被用来保存单个属性,也可以用来保存整个配置文件或者JSON二进制大对象。它是存储不加密的数据到etcd,然后也是和Secret相同,可以常使用下面两
阅读全文
摘要:一、简介 Secret对象类型用来保存敏感信息,解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod中。Secret 可以以两种方式来进行使用: 数据卷(Volume) 环境变量 敏感信息以base64编码格式存储,之后Pod会自动读取明文。 二、Secret
阅读全文
摘要:一、什么是Service 通过创建 Service,可以为一组具有相同功能的容器应用提供一个统一的入口地 址,并且将请求负载分发到后端的各个容器应用上。所以service的存在基于: 服务发现 负载均衡 1、服务发现 Pod因为Node节点的宕机会导致其重新调度,这样Pod就没有固定的ip,那么之前
阅读全文
摘要:一、简介 控制器(Controller)是集群上管理和运行容器的对象。Pod就是通过Controller实现应用的运维,如伸缩、滚动升级等,其中Pod与Controller之间通过标签(Label)以及标签选择器(Selector)建立关联。 控制器(Controller)对象有不同的类型,比较常用
阅读全文
摘要:一、Pod创建流程 上述过程分为在master节点和node节点上: master节点 create pod-->API Server-->Etcd,客户请求创建Pod,API Server进行创建,并且将创建的Pod信息写入到etcd中。 Scheduler-->API Server-->Etcd
阅读全文
摘要:一、基本概念 总的来说Pod包括以下几个方面: 最小的部署单元 一个Pod中可以包含一个或者多个容器 一个Pod中的容器共享网络命令空间 Pod是短暂的 在k8s集群中最小的管理和部署单元是Pod而非容器,这是为什么呢? 使用docker创建容器,一个容器起一个进程并且在一个容器中运行着一个应用程序
阅读全文
摘要:一、k8s集群搭建的方式 目前k8s集群搭建的方式有两种,分别为: kubeadm 二进制包 这两种方式各有优劣,其中kubeadm是一个k8s的部署工具,提供kubeadm init和kubeadm join用于快速部署k8s集群;二进制包的方式需要手动部署每一个组件,从而组成k8s集群。 kub
阅读全文
摘要:一、etcd集群搭建 etcd集群搭建可参考:https://www.cnblogs.com/shenjianping/p/14399264.html 二、nginx的安装与启动 1、安装前环境准备 yum install gcc-c++ #gcc编译 yum install -y pcre pcr
阅读全文
摘要:通过etcd v2 API的HTTP+JSON,很方便的用curl来调用etcd v2 API,有如下的内容: 集群管理API 一、集群管理API 1、查看版本 [root@localhost etcd-v3.3.10-linux-amd64]# curl -L http://127.0.0.1:2
阅读全文
摘要:一、etcd状态查看 1、版本号查看 [root@localhost etcd-v3.3.10-linux-amd64]# ./etcdctl --version etcdctl version: 3.3.10 API version: 2 2、查看集群成员信息 [root@localhost et
阅读全文
摘要:针对不同的情况,比如当节点数和各节点上的地址已知使用静态配置,但是当各个节点的地址无法知晓的情况下,使用服务发现进行配置。 一、静态配置 三台机器信息: name ip etcd1 192.168.159.128 etcd2 192.168.159.129 etcd3 192.168.159.130
阅读全文