etcd

k8s搭建集群

前提是你 提交于 2019-11-28 03:16:10
k8s由两种类型资源组成 分别是 master 和 nodes k8s的集群部署方式有三种: 1.kubeadm 2.minikube 3.二进制包 前两种为自动部署,简化操作。 说一说手动部署的 二进制包 k8s集群部署步骤: 1.关闭防火墙 firewall-cmd --state systenctl stop firewalld.service 2.禁止frewall开机启动 systemcel disable friewalld.service 3.获取二进制包 搭建master 1.docker安装 yam update 更新当前linux的系统版本和内核版本为最新 2编辑docker.repo文件 vi /etc/yum.repos.d/dockerrepo 直接vi 文件不存在自动创建 3.保存退出 yum imstall docker-engine -y -y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程) 4.安装etcd服务 此服务为 集群主要服务 在安装k8s各服务之前要安装并启动 下载etcd二进制文件 5.上传到master usr/local新建k8s文件夹 把上传的etcd文件解压 tar -zxvf … 6.把etcd 和etcdl复制到/usr/bin下 cp etcd etcdl /usr/bin 7.配置systemd服务文件

2019最新k8s集群搭建教程 (centos k8s 搭建)

左心房为你撑大大i 提交于 2019-11-28 03:11:52
2019-k8s-centos 2019最新k8s集群搭建教程 (centos k8s 搭建) 网上全是要么过时的,要么残缺的,大多数都是2016年,2017年的文档,照着尝试了N次,各种卸了重装,最后centos系统都搞得乱七八糟,各种配置互相冲突,影响,一直在kubeadm init 报错, 后来实在无果,重新安装了centos系统,从头再来 非常感谢网友@丿陌路灬再见ミ 技术支持和耐心指导 首先fork我的github到本地 git clone https://github.com/qxl1231/2019-k8s-centos.git cd 2019-k8s-centos 复制代码 安装完master后,还要安装下dashboard,请看另一个dashboard的md文档 centos7 部署 k8s 集群 安装docker-ce 官方文档 Master、Node节点都需要安装、配置Docker # 卸载原来的docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine # 安装依赖 sudo yum update

3.flannel服务安装

北城余情 提交于 2019-11-28 01:56:23
Master节点: yum install flannel sed -i 's#FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379"#FLANNEL_ETCD_ENDPOINTS="http://etcd:2379"#g' /etc/sysconfig/flanneld etcdctl mk /atomic.io/network/config '{ "Network": "10.0.0.0/16" }' systemctl start flanneld.service systemctl enable flanneld.service   Node节点: yum install flannel sed -i 's#FLANNEL_ETCD_ENDPOINTS="http://127.0.0.1:2379"#FLANNEL_ETCD_ENDPOINTS="http://etcd:2379"#g' /etc/sysconfig/flanneld systemctl start flanneld.service systemctl enable flanneld.service    来源: https://www.cnblogs.com/sdrbg/p/11386525.html

etcd安装

杀马特。学长 韩版系。学妹 提交于 2019-11-28 01:53:52
yum install etcd -y sed -i 's#ETCD_LISTEN_CLIENT_URLS="http://localhost:2379"#ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"#g' /etc/etcd/etcd.conf sed -i 's#ETCD_NAME="default"#ETCD_NAME="master"#g' /etc/etcd/etcd.conf sed -i 's#ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"#ETCD_ADVERTISE_CLIENT_URLS="http://etcd:2379,http://etcd:4001"#g' /etc/etcd/etcd.conf cat /etc/etcd/etcd.conf | grep -v ^#    来源: https://www.cnblogs.com/sdrbg/p/11386513.html

使用 Kubeadm 安装部署 Kubernetes 1.12.1 集群

冷暖自知 提交于 2019-11-28 01:42:44
手工搭建 Kubernetes 集群是一件很繁琐的事情,为了简化这些操作,就产生了很多安装配置工具,如 Kubeadm , Kubespray , RKE 等组件,我最终选择了官方的 Kubeadm 主要是不同的 Kubernetes 版本都有一些差异,Kubeadm 更新与支持的会好一些。Kubeadm 是 Kubernetes 官方提供的快速安装和初始化 Kubernetes 集群的工具,目前的还处于孵化开发状态,跟随 Kubernetes 每个新版本的发布都会同步更新, 强烈建议先看下官方的文档了解下各个组件与对象的作用 。 https://kubernetes.io/docs/concepts/ https://kubernetes.io/docs/setup/independent/install-kubeadm/ https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/ 关于其他部署方式参考如下: 使用 Kubespray 部署生产可用的Kubernetes集群(1.11.2) rancher 中国区加速安装 Kubernetes 系统环境配置 准备3台服务器,1 个Master 节点 2个 Node 节点(所有节点均需执行如下步骤);生产环境建议 3个 Master N 个 Node 节点

ETCD:gRPC命名与发现

老子叫甜甜 提交于 2019-11-28 00:51:46
原文地址: gRPC naming and discovery etcd提供一个gRPC解析器支持备用的命名系统,该命名系统从etcd获取主机以发现gRPC服务。以下机制基于监视对以服务名称为前缀的Key的更新。 通过go-grpc使用etcd发现服务 etcd客户端提供一个gRPC解析器通过etcd后端解析gRPC主机,解析器通过etcd客户端初始化并指定了解析目标: import ( "go.etcd.io/etcd/clientv3" etcdnaming "go.etcd.io/etcd/clientv3/naming" "google.golang.org/grpc" ) ... cli, cerr := clientv3.NewFromURL("http://localhost:2379") r := &etcdnaming.GRPCResolver{Client: cli} b := grpc.RoundRobin(r) conn, gerr := grpc.Dial("my-service", grpc.WithBalancer(b), grpc.WithBlock(), ...) 管理服务主机 etcd解析器对于解析目标前缀下所有Keys后面跟一个"/"(例如"my-service/"),使用JSON编码go-grpc naming.Update

Kubernetes 再深入一点点

五迷三道 提交于 2019-11-28 00:37:20
kb master 运行如下容器 etcd 是 k8s 的核心, 主要负责k8s的核心数据处理及保存, 需要备份该数据,或者做集群 ,服务端口 2379(客户端服务) 2380(节点通信)kube-controller-manager 负责节点,副本,端点,服务账号 等控制kube-scheduler 调度器,选择nodes 给新pod使用kube-apiserver 服务接口, 接收kubectl 或 其它控制程序 对kube里 svc node pod 查询,控制 8080 6443coredns dns 服务器 给kube 网内使用flanneld 给kube 建设一个虚拟网, 也可以用另外的模式kube-proxy 网络代理, 建立实体机器 与 pods 内部的代理,提供给外部使用pause 很轻的容器,有多个, 是为了建立其它容器用。 保证其它容器 共享 namespace 和文件 kb node 运行 pause 其数量 = 应用数量 + 2 kube-proxy flanneld 及 实际应用 etcd 运行参数 "Entrypoint": [ "etcd", "--advertise-client-urls=https://192.168.2.200:2379", "--cert-file=/etc/kubernetes/pki/etcd/server.crt",

k8sSecret资源

淺唱寂寞╮ 提交于 2019-11-28 00:08:11
Secret资源的功能类似于ConfigMap,但它专用于存放敏感数据,如密码、数字证书、私钥、令牌和ssh key等。 一、概述 Secret对象存储数据以键值方式存储数据,再pod资源中通过环境变量或存储卷进行数据访问。Secret对象仅会被分发至调用了此对象的pod资源所在的工作节点,且只能由节点将其存储于内存中。另外,Secret对象的数据的存储及打印格式为base64编码的字符串,因此用户在创建对象时也要提供此种编码格式的数据。不过,在容器中以环境变量或存储卷的方式访问时,他们会被自动解码为明文格式。 在master节点上,Secret对象以非加密的格式存储于etcd中,因此管理员必须加以精心管控以确保敏感数据的机密性,必须确保etcd集群节点间以及与APIserver的安全通信,etcd服务的访问授权,还包括用户访问APIServer时的授权,因为拥有创建pod资源的用户都可以使用Secret资源并能够通过pod中的容器访问其数据。 Secret对象主要有两种用途,一是作为存储卷注入到pod上,由容器应用程序所使用,二是用于kubelet为pod里的容器拉取镜像时向私有仓库提供认证信息。Secret资源主要有四种类型组成: 1、Opaque:自定义数据内容;base64编码,用来存储密码、密钥、信息、证书等数据,类型标识符为generic 2、kubernetes.io

Kubernetes集群高可用的策略和实践

两盒软妹~` 提交于 2019-11-27 20:45:06
Kubernetes高可用也许是完成了初步的技术评估,打算将生产环境迁移进Kubernetes集群之前普遍面临的问题。 为了减少因为服务器当机引起的业务中断,生产环境中的业务系统往往已经做好了高可用,而当引入Kubernetes这一套新的集群管理系统之后, 服务器不再是单一的个体,位于中央位置的Kubernetes Master一旦中断服务,将导致所有Node节点均不可控,有可能造成严重的事故。 总体来讲这是一个 被多次讨论 ,但暂时 没有形成统一解决方案 的话题。今天主要介绍一些Kubernetes Master高可用的策略,供大家参考。 基本目标 高可用是复杂的系统工程。出于篇幅的考虑以及能力的限制,今天我们先关注一个小目标: 所有的Kubernetes Master服务器没有单点故障,任何一台服务器当机均不影响Kubernetes的正常工作。 实现这一目标带来的直接收益是我们可以在不影响业务正常运行的前提下实现所有服务器的滚动升级,有助于完成系统组件升级以及安全补丁的下发。 为了实现没有单点故障的目标,需要为以下几个组件建立高可用方案: etcd kube-apiserver kube-controller-manager 与 kube-scheduler kube-dns 集群高可用技术路线示意图。 下面为大家逐个详细介绍各个组件的高可用策略。 1、etcd高可用

Kubernetes中使用CronJob定时备份etcd集群数据

你说的曾经没有我的故事 提交于 2019-11-27 20:44:41
Kubernetes中使用CronJob定时备份etcd集群数据 注意: 这里的内容已经过时 ! 使用kubernetes1.12.3和etcd3.2.24 请参考 Kubernetes的etcd探秘-状态数据备份 。 kubernetes中部署的应用的信息都存放在etcd里面,这里面的数据非常重要,需要备份,以备不时之需。 这里使用k8s提供的定时任务来执行备份任务,定时任务的pod要和etcd的pod要在同一个node上面(使用nodeAffinity)。 要求 kubernetes 1.6 etcd 3.0.17 yaml文件 apiVersion: batch/v2alpha1 kind: CronJob metadata: name: etcd-disaster-recovery namespace: cron spec: schedule: "0 22 * * *" jobTemplate: spec: template: metadata: labels: app: etcd-disaster-recovery spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: