DaLei@home:~$

  • 使用Helm在Minikube中安装Consul

    背景介绍 Kubernetes管理容器集群,容器间的通信是很有必要的,通过硬编码的方式指定容器的IP地址不可移植且增加工作量,因此提供一个服务发现的服务是有必要的,Consul就是这样的一个工具。本文将讲述如何在Kubernetes中安装和使用Consul。 准备 Helm是Kubernetes的包管理工具,类似于Centos的yumd和Ubuntu的apt,用于包的发布和管理,功能十分强大。 本文中简单地介绍如何使用helm安装Consul。 Consul是用于服务发现和监测的服务,在我们前面的文章中,做了简单的介绍。Consul可以独立于Kubernetes使用,在一些简单的微服务架构中也可以用作服务发现的工具。 启动Minikube和安装Consul # 启动minikube, 可以指定运行内存 minikube start --memory 4096 # 启动控制UI界面 设置url参数 minikube dashboard --url #为了完成测试可以先使用demo git clone https://github.com/hashicorp/demo-consul-101.git cd demo-consul-101/k8s # helm 安装 snap install helm # helm初始化,在国内不能使用 # helm init # 替代方案 # 记下helm版本号,并修改下面init命令的对应的版本号 helm version helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:版本号(例如V.2.14.1) --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts...

  • Kubernetes使用minikube本地化部署

    在上一篇文章《Kubernetes初体验》中我们介绍了本地化安装的一些限制条件,在本文中我们将基于上一篇配置好环境的基础之上,进行本地化部署 前期检查 可以使用下面命令检查本地化环境是否配置成功, 如果成功下面命令都会返回正常的结果 # 查看服务器和客户端是否成功运行 kubectl version # 查看集群信息 kubectl cluster-info # 查看节点信息 kubectl get pods 部署官方推荐应用 根据官方文档的事例 kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080 但是国内的环境是运行不成功的,可以通过kubectl get pods 和 kubectl get deployments查看镜像的状态。因为上述链接是google的,微软azure针对这个问题给过国内提供镜像,按照这篇博文,把 ‘gcr.io/google-samples/’ 替换成为 ‘gcr.azk8s.cn/google_containers/’ 就可以成功拉取对应的镜像并执行,如下所示: # 从镜像地址拉取镜像,制定镜像内部使用端口为8080,此时镜像并没有真正执行。 kubectl run hello-minikube --image=gcr.azk8s.cn/google_containers/echoserver:1.10 --port=8080 # 查看部署已经就绪 kubectl get deployments # 查看pod还没有真正执行 kubectl...

  • Kubernetes初体验

    本文主要介绍Kubernetes本地化配置 环境要求 在 BIOS 中开启VT-x/AMD-v 虚拟化支持,这一项是必须的条件,但是目前大多数云主机都不支持这项,只能在本地机器上进行。如果主机不适合作为开发环境,可以在本地主机上使用vmvare软件创建一个适合的开发环境(在虚拟机设里面的虚拟换引擎勾选虚拟化Intel VT-x/RVI 选项重启即可)。 minikube和kubectl安装,kubectl很好安装网上教程比较多略过,minikube官网上也有教程,但是国内不能用,因为使用了部分google的网址,所以会导致特别慢。针对此问题阿里云的开发者提供了国内可用的minikube,经过测试可以使用 KVM安装,ubuntu安装方式, 其他系统自行google。注意安装KVM之前需要按照教程检查主机是否支持虚拟化。 初体验 检查和启动 sudo minikube version # 返回 minikube version: v1.1.1 # 启动k8s sudo minikube start # 返回 🏄 Done! kubectl is now configured to use "minikube" # 表示环境没有问题 # 使用k8s客户端查看服务端和客户端版本号 sudo kubectl version # 返回: # Client Version: version.Info{Major:"1",...

  • Consul服务发现的配置

    Consul环境搭建 Consul如上一篇文件介绍那样一帮用于服务发现和健康检查,在本篇中简单搭建Consul服务发现的测试环境,有利于在微服务框架中使用Consul。 首先安装Consul,根据系统的不同到官方地址下载安装文件,自己在Ubuntu下载zip文件解压,移动到bin目录下,表示Consul安装完成,可以直接运行Consul检查时候安装成功 单机本地运行,consul agent -dev #这个命令就会启动Consul,Ctrl+C终止,在本地别的terminal执行 consul members #查看当前运行的节点 Node Address Status Type Build Protocol DC Segment agent-one 172.17.0.2:8301 alive server 1.5.0 2 dc1 all curl localhost:8500/v1/catalog/nodes 这个命令通过url查看节点的信息 dig @127.0.0.1 -p 8600 agent-one.node.consul 这个命令查看DNS信息 终止Consul有两种方式,一种是Ctrl+C,这种方式比较友好,能够马上从节点里面小时 还有一种方式是kill,这种方式则会启动健康检查那一套机制离开 注册服务 通过配置文件 新建consul.d文件夹 echo ‘{“service”: {“name”: “web”, “tags”: [“rails”], “port”: 80}}’ > ./consul.d/web.json...

  • Consul学习笔记

    本文介绍Consul的基本信息,包括Consul是什么,它能够解决什么问题,和已经存在相关的软件进行对比,以及怎么去使用Consul What is Consul? Consul是什么 Consul是一个服务网格解决方案,包括服务发现、配置和分割功能。这些功能可以根据需要独立使用或者一起使用简历一个完整的服务网格。Consul要求一个数据层,支持代理和本地集成模式。Consul自带代理,这样就可以在Consul外面工作,同时Consul支持第三方代理集成Envoy等 Consul支持关键特性 服务发现 Consul客户端可以注册一个服务,例如api或者mysql,其他的客户端可以使用Consul去发现服务的提供者。使用DNS或者HTTP,应用可以简单地发现他们依赖的服务。 健康检查 Consul客户端提供任意数量的健康检查,包括一个给定的服务(是否返回200),或者一个本地的节点(内存使用率超过90%),这些信息用于监控集群的健康状况和转移没有正常工作的主机的流量。 KV存储 应用可以使用Consul的分层key-value存储用于一些目的,包括动态配置,功能标记,协调,领导选举等。可以通过简单的http api使用 安全服务通信 Consul 可以生成和分发TLS证书用于简历TLS链接。Intentions可以用来定义哪些服务允许通信,Intentions可以简单地分割服务,实时改变而不是使用复杂的网络拓步图和静态的防火墙规则 多数据中心 Consul支持多数据中心。 Basic Architecture of Consul Consul基础架构 Consul 是一个分布式高可用的系统。 每一个提供服务的节点运行一个Consul agent. 运行agent对于发现其他服务或者设置获取key/value数据不是必要的。agent负责检查服务节点和自身节点的健康检查。 agent同一个或者多个server通信,server存储数据和备份。server之间会选举一个领导。 Cousul的多server可以当成一个单server提供功能,3-5个server是被推荐的,避免失败导致数据丢失。每一个数据中心建议有一个server集群。你的基础设施需要发现其他服务或者节点的时候可以查询任何的Consul server或者Consul agent, Agent 会自动转发查询到server 每一个数据中心运行一个Consul server集群,当有一个需要跨越数据中兴的服务发现或者配置请求,本地的Consul server会转发给远程数据中心,然后返回结果 Consul vs Other Software … Getting Started …