etcd

Etcd安装和使用

只谈情不闲聊 提交于 2019-12-02 14:52:35
Etcd安装和使用 一.安装 1.1 二进制安装 从这里下载: etcd-v3.2.11-linux-amd64.tar.gz 下载包后解压即可运行: # 解压 tar zxvf etcd-v3.2.11-linux-amd64.tar.gz cd etcd-v3.2.11-linux-amd64 # ETCD版本 etcd --version # 客户端接口版本 etcdctl --version # API3的要这样 ETCDCTL_API=3 etcdctl version # 启动也很简单 ./etcd # 试试 ETCDCTL_API=3 etcdctl --endpoints=localhost:2379 put foo bar ETCDCTL_API=3 etcdctl --endpoints=localhost:2379 get foo 1.2 源码安装 安装好Golang环境: 见 Golang环境配置 go get -u -v https://github.com/coreos/etcd ./build 启动: ./etcd 1.3 docker安装 拉镜像: docker pull quay.io/coreos/etcd 启动: docker run -it --rm -p 2379:2379 -p 2380:2380 --name etcd quay.io

kubernetes二进制部署

冷暖自知 提交于 2019-12-02 13:23:11
1.安装规划: pod分配IP: 10.244.0.0/16 cluster分配地址段:10.99.0.0/16 CoreDNS:10.99.110.110 统一安装路径:/data/apps 主机名 ip地址 组件 集群 master1 192.168.100.63 Kube-apiserver 、kube controller-manager、kube-scheduler、etcd、kube-proxy、kubelet、flanneld、docker、keepalived、haproxy VIP:192.168.100.100 master2 192.168.100.65 master2 192.168.100.66 node1 192.168.100.61 kubelet、kube-proxy、flanneld、docker node2 192.168.100.62 Kubernetes 主要由以下几个核心组件组成: 1.etcd 保存了整个集群的状态; 2.kube-apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制; 3.kube-controller-manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; 4.kube-scheduler 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;

k8s架构

梦想与她 提交于 2019-12-02 10:58:31
k8s集群由master节点和node节点组成 master节点 master节点就像k8s集群的大脑,运行着这几个守护进程:kube-apiserver、kube-scheduler、kube-controller-manager、etcd和pod网络 #################### kube-apiserver 负责提供HTTP/HTTPS的RESTful API,即 Kubernetes API。apiserver是k8s集群的前端接口,各种客户端工具以及k8s的其他组件都可以通过它管理集群的各种资源 kube-scheduler 负责决定将pod放在哪个node上运行。scheduler在调度时会充分考虑集群的拓扑结构,当前各个节点的负载,以及应用对高可用、性能、数据亲和性的需求 kube-controller-manager 负责管理集群各种资源,保证资源处于预期的状态。controller manager由多种controller组成,包括replication controller、endpoints controller、namespace controller、serviceaccounts controller等。 不同的controller管理不同的资源。例如replication controller管理deployment、StatefulSet

go语言操作etcd

吃可爱长大的小学妹 提交于 2019-12-02 10:58:22
go操作etcd etcd是近几年比较火热的一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现,本文主要介绍etcd的安装和使用。 etcd etcd介绍 etcd 是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。 类似项目有zookeeper和consul。 etcd具有以下特点: 完全复制:集群中的每个节点都可以使用完整的存档 高可用性:Etcd可用于避免硬件的单点故障或网络问题 一致性:每次读取都会返回跨多主机的最新写入 简单:包括一个定义良好、面向用户的API(gRPC) 安全:实现了带有可选的客户端证书身份验证的自动化TLS 快速:每秒10000次写入的基准速度 可靠:使用Raft算法实现了强一致、高可用的服务存储目录 etcd应用场景 服务发现 服务发现要解决的也是分布式系统中最常见的问题之一,即在同一个分布式集群中的进程或服务,要如何才能找到对方并建立连接。本质上来说,服务发现就是想要了解集群中是否有进程在监听 udp 或 tcp 端口,并且通过名字就可以查找和连接。 配置中心 将一些配置信息放到 etcd 上进行集中管理。 这类场景的使用方式通常是这样:应用在启动的时候主动从 etcd 获取一次配置信息,同时,在 etcd 节点上注册一个 Watcher 并等待

k8s集群部署(2)

浪尽此生 提交于 2019-12-02 06:20:34
一、利用ansible部署kubernetes准备阶段 1、集群介绍   基于二进制方式部署k8s集群和利用ansible-playbook实现自动化;二进制方式部署有助于理解系统各组件的交互原理和熟悉组件启动参数,有助于快速排查解决实际问题。 2、集群规划和基础参数设定 (1)搞哭用集群所需节点配置如下;   部署节点 x1 : 运行这份 ansible 脚本的节点 etcd节点 x3 : 注意etcd集群必须是1,3,5,7...奇数个节点 master节点 x1 : 运行集群主要组件 node节点 x3 : 真正应用部署的节点,根据需要增加机器配置和节点数 (2)在部署节点准备ansible:   1)保证源时可用的,selinux和firewalld是关闭的(这里配的是云唯图书馆里的内部源)   2)下载并安装docker,并启动docker,开机自启docker   3)下载ansible   4)配置每台机器之间的静态解析和免密登陆 [root@ren8 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6

k8s架构

霸气de小男生 提交于 2019-12-02 05:39:11
Kubernetes组件介绍: etcd 保存了整个集群的状态;etcd的官方将它定位成一个可信赖的分布式键值存储服务,它能够为整个分布式集群存储一些关键数据,协助分布式集群的正常运转;键值对数据库 储存K8S集群所有重要信息(持久化) apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制;所有服务访问统一入口 controllerMmanager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等;维持副本期望数目 scheduler 负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;负责介绍任务,选择合适的节点进行分配任务 kubelet 负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理;负责介绍任务,选择合适的节点进行分配任务;直接跟容器引擎交互实现容器的生命周期管理 Container runtime负责镜像管理以及Pod和容器的真正运行(CRI); kube-proxy 负责为Service提供cluster内部的服务发现和负载均衡;负责写入规则至 IPTABLES、IPVS 实现服务映射访问的 COREDNS:可以为集群中的SVC创建一个域名IP的对应关系解析 INGRESS CONTROLLER:官方只能实现四层代理,INGRESS 可以实现七层代理 FEDERATION

etcd 添加用户,授权特定目录

自作多情 提交于 2019-12-02 03:18:38
适用场景 多组共用etcd集群,创建一个新用户、新目录,让这个新用户只有新目录的使用权限。 命令和顺序 创建目录,注意此处是v2 curl -u root:pwd http://host:2379/v2/keys/dir -XPUT -d dir=true 查看用户列表 ./etcdctl -u root:pwd --endpoints=http://host:2379 user list 添加用户 ./etcdctl -u root:pwd --endpoints=http://host:2379 user list 查看角色列表 ./etcdctl -u root:pwd --endpoints=http://host:2379 role list 添加角色 ./etcdctl -u root:pwd --endpoints=http://host:2379 role add systech_nsq 赋予角色指定目录权限 ./etcdctl -u root:pwd --endpoints=http://host:2379 role grant systech_nsq -path '/b2c_systech_nsq/*' -readwrite 查看角色权限 ./etcdctl -u root:pwd --endpoints=http://host:2379 role get

Ubuntu16手动安装OpenStack

流过昼夜 提交于 2019-12-02 02:50:21
记录大佬的博客全文转载于 https://www.voidking.com/dev-ubuntu16-manual-openstack-env/ 前言 《Ubuntu16安装OpenStack》 一文中,使用devstack在物理机上安装了OpenStack的Queens版本。但是,在后来的 《OpenStack添加镜像》 实验中,遇到了很多奇怪的问题,遂决定重装OpenStack。 本次安装,计划采用一步步手动安装的方式,在两个节点上,最小安装OpenStack的Queens版本。主要参考 OpenStack Queens Installation Guides ,首先配置环境,然后安装必要的组件,包括keystone、glance、nova、neutron。再之后,选择安装horizon、cinder和swift。 本文,就记录一下配置环境的过程。 准备 本次安装使用两台VirtualBox虚拟机,一个控制节点和一个计算节点,系统均为ubuntu-16.04.4-server-amd64。控制节点1核4G内存40G存储,计算节点1核2G内存40G存储。 这两台虚拟机,都有三块网卡。eth0负责主机间相互通信,eth1负责上网,eth2负责neutron网络服务。两张eth0网卡在同一网络,两张eth2网卡在同一网络。 IP配置 参考

k8s

社会主义新天地 提交于 2019-12-02 02:32:29
# 什么是k8s - **Kubernetes**的名字来自希腊语,意思是“舵手” 或 “领航员”。K8s是将8个字母“ubernete”替换为“8”的缩写。 - K8S的创造者,是众人皆知的行业巨头——**Google**。 - 然而K8S并不是一件全新的发明。它的前身,是Google自己捣鼓了十多年的**Borg系统**。 - K8S是2014年6月由Google公司正式公布出来并宣布开源的。 # 为什么要使用k8s - Kubernetes是Google 2014年创建管理的,是Google 10多年大规模容器管理技术Borg的开源版本。 - K8s 是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能 # 什么时候用 - 快速部署应用 - 快速扩展应用 - 无缝对接新的应用功能 - 节省资源,优化硬件资源的使用 # 在那用 - **可移植**: 支持公有云,私有云,混合云,多重云(multi-cloud) - **可扩展**: 模块化, 插件化, 可挂载, 可组合 - **自动化**: 自动部署,自动重启,自动复制,自动伸缩/扩展 # 怎么用 - **Build, Ship and Run (创建,发送和运行)** - **Build once,Run anywhere(搭建一次,到处能用)** - Docker技术的三大核心概念

kubeadm默认配置

╄→гoц情女王★ 提交于 2019-12-01 21:16:29
kubeadm config print init-defaults [flags] 此命令打印对象,例如用于'kubeadm init'的默认init配置。 选项 --component-configs stringSlice 组件配置API对象的逗号分隔列表,以打印其默认值。可用值:[KubeProxyConfiguration KubeletConfiguration]。如果未设置此标志,则不会打印任何组件配置。 -h,--help 初始化默认值的帮助 官网: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/ https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2 kubeadm1.13+ 支持的configuration types: apiVersion: kubeadm.k8s.io/v1beta1 kind: InitConfiguration apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration apiVersion: kubelet.config.k8s.io/v1beta1 kind: