etcd

k8s集群部署(3)

谁说胖子不能爱 提交于 2020-03-17 07:01:30
一、利用ansible部署kubernetes集群环境准备    基 于二进制方式部署和利用ansible-playbook实现自动化:既提供一键安装脚本,也可以分步执行安装各个组件,同时讲解每一步主要参数配置和注意事项;二进制方式部署有助于理解系统各组件的交互原理和熟悉组件启动参数,有助于快速排查解决实际问题。 版本组件 :   kubernetes v1.9.7   etcd v3.3.4   docker 18.03.0-ce   calico/node:v3.0.6   calico/cni:v2.0.5   calico/kube-controllers:v2.0.4   centos 7.3+ 集群规划和基础参数设定:   1.高可用集群所需节点配置如下:     部署节点×1:运行ansible脚本的节点     etcd节点×3:注意etcd集群节点必须是1,3,5,7……奇数个节点     master节点×1:运行集群主要组件     node节点×3:真正应用部署的节点,根据需要增加机器配置和节点数   2.在部署节点准备ansible:使用ansible的docker环境启动:     1° 下载内部源配置脚本并运行脚本: wget http://download2.yunwei.edu/shell/yum-repo.shbash yum-repo.sh  

k8s高可用环境部署-1.17.3版本

倖福魔咒の 提交于 2020-03-15 23:20:07
准备 在开始部署 k8s 高可用集群时,请先参考 k8s高可用环境部署系统准备 操作系统兼容性 环境说明 集群部署前系统环境装备,请参考 k8s高可用环境部署系统准备.md 本次高可用集群基本参照 官网步骤 进行部署,官网给出了两种 拓扑结构 :堆叠control plane node和external etcd node,本文基于第一种拓扑结构进行部署,使用 Keepalived + HAProxy 搭建高可用Load balancer,完整的拓扑图如下: 单个mastre节点将部署keepalived、haproxy、etcd、apiserver、controller-manager、schedule六种服务,load balancer集群和etcd集群仅用来为kubernetes集群集群服务,不对外营业。如果必要,可以将load balancer或者etcd单独部署,为kubernetes集群提供服务的同时,也可以为其他有需要的系统提供服务,比如下面这样的拓扑结构: 说明⚠️:这种拓扑结构也对应external etcd node~ 本文仅部署master节点,使用kubeadm部署worker节点非常简单,不在赘述,环境清单: 服务器 主机IP 主机名字 功能 k8s-master01 192.168.246.193 master01 master+etcd

k8s部署prometheus

﹥>﹥吖頭↗ 提交于 2020-03-13 11:02:28
https://www.kancloud.cn/huyipow/prometheus/527092 https://songjiayang.gitbooks.io/prometheus/content/demo/target.html 创建 monitoring namespaces apiVersion: v1 kind: Namespace metadata: name: monitoring Prometheus RBAC 权限管理 创建prometheus-k8s 角色账号 apiVersion: v1 kind: ServiceAccount metadata: name: prometheus-k8s namespace: monitoring 在kube-system 与 monitoring namespaces 空间,创建 prometheus-k8s 角色用户权限 。 apiVersion: rbac.authorization.k8s.io/v1beta1 kind: Role metadata: name: prometheus-k8s namespace: monitoring rules: - apiGroups: [""] resources: - nodes - services - endpoints - pods verbs: ["get",

etcd集群添加节点

给你一囗甜甜゛ 提交于 2020-03-13 09:19:11
查看当前集群节点信息 # etcdctl member list --write-out=table +------------------+---------+--------------------+--------------------------------+-----------------------------------------------------+------------+ | ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER | +------------------+---------+--------------------+--------------------------------+-----------------------------------------------------+------------+ | 44d8bc3300880bcd | started | sht-sgmhadoopdn-01 | http://sht-sgmhadoopdn-01:2380 | http://10.0.0.1:2379,http://sht-sgmhadoopdn-01:2379 | false | | d446fbe3296eb85a | started | sht

etcd集群移除节点

允我心安 提交于 2020-03-13 09:15:17
查看当前集群信息 # etcdctl member list --write-out=table +------------------+---------+--------------------+--------------------------------+-----------------------------------------------------+------------+ | ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER | +------------------+---------+--------------------+--------------------------------+-----------------------------------------------------+------------+ | 44d8bc3300880bcd | started | sht-sgmhadoopdn-01 | http://sht-sgmhadoopdn-01:2380 | http://10.0.0.1:2379,http://sht-sgmhadoopdn-01:2379 | false | | 7796493c3943f891 | started | sht

(1)k8s集群部署

会有一股神秘感。 提交于 2020-03-12 01:51:24
K8S介绍: 官方文档: https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/ (1)添加阿里docker 源 shell> wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo (2)安装docker shell>yum -y install docker-ce shell>docker -v shell> systemctl enable docker shell>systemctl start docker (3)安装kubernetes,增加源 shell> cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl= https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey= https://mirrors.aliyun.com/kubernetes/yum/doc

Etcd安全配置之Basic Auth认证

醉酒当歌 提交于 2020-03-08 03:12:00
《中小团队落地配置中心详解》 文章中我们介绍了如何基于Etcd+Confd构建配置中心,最后提到Etcd的安全问题时说了可以使用账号密码认证以达到安全访问的目的,究竟该如何开启认证以及怎么设计权限访问呢?本文将为你详细解读 认证说明 Etcd v2以上的版本才支持权限认证,且仅支持Basic Auth Etcd通过用户(user)-角色(role)-权限的方式来控制访问,用户关联角色,角色拥有权限,从而用户也就拥有了相应的权限 Etcd默认没有启用认证机制,只要能连接etcd服务就拥有所有的权限,还是非常危险的,另一种安全的访问方式是开启ssl,只有使用受信任的证书才能访问数据 Etcd开启Basic Auth之后,默认会启用两个角色root和guest,root角色拥有所有权限,guest拥有只读权限,这两个角色都 不要删除 ,否则你可能会遇到意想不到的Bug Etcd的权限分为只读、只写、可读写,可以对etcd的详细key进行授权,例如:/conf/project/dev/nginx.conf,也可以授权key前缀(目录),例如:/conf/project/,授权规则应以最小满足需求为准则 权限设计 权限设计应先考虑我们对权限的需求,从需求出发设计权限 需求 为了方便后续管理,规定配置中心所有key都应已/conf/开头 需要两个账号,一个账号用在Kerrigan(WebUI

kubeadm安装1.9版本

蹲街弑〆低调 提交于 2020-03-05 23:28:00
kubernetes 1.9.0 kubeadm方式安装 1、安装rpm包 yum localinstall -y kubeadm-1.9.0-0.x86_64.rpm kubectl-1.9.0-0.x86_64.rpm kubelet-1.9.0-0.x86_64.rpm kubernetes-cni-0.6.0-0.x86_64.rpm 2、修改内核参数 修改 /etc/sysctl.conf,添加以下内容 net.ipv4.ip_forward=1 net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 修改后,及时生效 sysctl -p 3、修改kubelet配置文件 kubelet和docker 的cgroup driver 有2种方式:cgroupfs和systemd.注意保持 2个应用的driver保持一致。 3.1 docker是cgroupfs的,修改kubelet vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf #修改systemd为cgroupfs Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs" #新加一行

10分钟将你的Go工程转换为Go Module模式

青春壹個敷衍的年華 提交于 2020-03-05 18:24:16
引言 自从在Go 1.11和更高版本中引入了Go的新的依赖管理系统以来,GoLang开发人员已经接受了包版本控制解决方案。这样做的用户可以使用GoCenter存储库中的 不可变 公共Go 模块,并通过更健壮、更可靠的Go Pipeline获得更快的构建速度。 但是,将现有的项目转换为使用Go Module并不总是很容易,尤其是如果该项目已经尝试过GoLang的其他包管理解决方案时。 为了帮助GoLang社区正确地使用Go Module,我们将使用开源的etcd项目(Kubernetes使用的键值数据存储)作为示例。这是一个最佳实践的实际示例,因为它足够复杂,可以展示一些常见的实践 PS: 在上一篇关于Go语言开发的的文章中(传送门: Go 语言依赖管理的优势 ),我们介绍了Go 依赖管理的发展历史以及Go Module如何更有效的帮助我们管理Go语言项目的依赖。今天我们重点分享如何将你的Go 项目转换为Go Module 项目。 Go 项目依赖管理痛点分析 传统GO项目进行第三方模块依赖时,往往是去下载第三方源码,这种方式将存在以下常见问题: 性能及稳定性:每次下载从各大VCS系统下载源码性能低,依赖网络环境,稳定性差 一致性&可重复性:容易收到依赖源的影响,我们往往在感知不到模块提供方的改动时,就下载了新版的代码,两次依赖某模块得到的依赖不一致,往往造成前一秒还行

Golang 通过 Consul 实现分布式锁

北战南征 提交于 2020-03-05 17:22:05
Golang 通过 Consul 实现分布式锁 Consul 是什么 Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对. 命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品. 一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制. Consul 的使用场景 docker 实例的注册与配置共享 coreos 实例的注册与配置共享 vitess 集群 SaaS 应用的配置共享 与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件 Consul 的优势 使用 Raft 算法来保证一致性, 比复杂的 Paxos 算法更直接. 相比较而言, zookeeper 采用的是 Paxos, 而 etcd 使用的则是 Raft. 支持多数据中心,内外网的服务采用不同的端口进行监听。 多数据中心集群可以避免单数据中心的单点故障,而其部署则需要考虑网络延迟, 分片等情况等. zookeeper 和 etcd