etcd

Docker-Docker容器跨主机通信

匿名 (未验证) 提交于 2019-12-03 00:00:02
Docker默认的网络环境下,单台主机上的Docker容器可以通过docker0网桥直接通信,而不同主机上的Docker容器之间只能通过在主机上做端口映射进行通信。这种端口映射方式对很多集群应用来说极不方便。如果能让Docker容器之间直接使用自己的IP地址进行通信,会解决很多问题。按实现原理可分别直接路由方式、桥接方式(如pipework)、Overlay隧道方式(如flannel、ovs+gre)等。 docker0网关修改: 首先删除旧的网络 $ sudo ip link set dev docker0 down $ sudo brctl delbr docker0 修改 /etc/docker/daemon.json,改变默认docker0网关 { "bip" : "192.188.0.1/16”, } 查看 $ ifconfig docker0 docker0 Link encap : Ethernet HWaddr 02 : 42 : 38 : 60 : 08 : 25 inet addr : 192.188 . 0.1 Bcast : 0.0 . 0.0 Mask : 255.255 . 0.0 UP BROADCAST MULTICAST MTU : 1500 Metric : 1 RX packets : 0 errors : 0 dropped : 0

彻底搞懂etcd raft选举、数据同步

匿名 (未验证) 提交于 2019-12-02 23:57:01
etcd raft选举机制 etcd 是一个分布式的k/V存储系统。核心使用了RAFT分布式一致性协议。一致性这个概念,它是指多个服务器在状态达成一致,但是在一个分布式系统中,因为各种意外可能,有的服务器可能会崩溃或变得不可靠,它就不能和其他服务器达成一致状态。这样就需要一种Consensus协议,一致性协议是为了确保容错性,也就是即使系统中有一两个服务器当机,也不会影响其处理过程。 为了以容错方式达成一致,我们不可能要求所有服务器100%都达成一致状态,只要超过半数的大多数服务器达成一致就可以了,假设有N台服务器,N/2 +1 就超过半数,代表大多数了。 raft协议核心要点: Leader选举(Leader Election) 日志同步 (Log Replication) leader收到client的更新请求后,会讲更新的内容同步给所有follower。 集群状态的正确性 (Safety) 保证日志的一致性 保证选举的正确性 服务器状态: leader 处理所有客户端交互,日志复制等,一个任期只有一个。 follower 完全被动的选民,是只读的。 candidate 候选人,可以被选举为新领导。 状态之间的转换: 任期(terms) 如上图,蓝色代表 Election 模式,绿色代表 Operation 模式 在每个任期内最多一个leader 有些可能没有leader

kubeadm部署k8s集群(1.9.2)

眉间皱痕 提交于 2019-12-02 23:56:04
Kubeadm部署K8S集群(1.9.2) Kubeadm 目前处于beta状态,官网上说2018年会推出GA版本。从我的安装体验来说:确实比存手动安装省事太多太多了! 1、环境清单 1.1、系统清单 IP Hostname Role OS 192.168.119.160 k8s-master Master CentOS 7 192.168.119.161 k8s-node-1 Node CentOS 7 1.2、软件清单 原本应该按照官方文档上的内容,通过YUM进行安装,但是由于众所周知的原因,只能通过其他途径获得rpm安装包进行安装。用到的rpm会在文件的末位提供下载地址。 kubelet-1.9.2-0.x86_64.rpm kubectl-1.9.2-0.x86_64.rpm kubeadm-1.9.2-0.x86_64.rpm kubernetes-cni-0.6.0-0.x86_64.rpm socat-1.7.3.2-2.el7.x86_64.rpm 1.3、镜像清单 与软件清单一样,镜像文件也是通过科学上网获得,本文用到的镜像文件也会附在文章末尾。 1.3.1、必须镜像 gcr.io/google_containers/kube-apiserver-amd64:v1.9.2 gcr.io/google_containers/kube-proxy-amd64:v1.9

Kubernetes 各版本镜像列表

匿名 (未验证) 提交于 2019-12-02 23:48:02
以下镜像列表由 kubeadm v1.11.1 导出,若使用预下载镜像离线部署的方式部署,请使用 kubeadm v1.11.1 版本 导出各版本镜像列表: kubeadm config images list --kubernetes-version=v1.11.1 官方镜像 123456 quay.io/coreos/flannel:v0.10.0-amd64gcr.io/kubernetes-helm/tiller:v2.9.1k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.3gcr.io/google_containers/heapster-amd64:v1.5.4gcr.io/google_containers/heapster-influxdb-amd64:v1.5.2gcr.io/google_containers/heapster-grafana-amd64:v5.0.4 阿里云镜像 123456 # flannel:v0.10.0-amd64 ռλregistry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard

使用kubeadm在CentOS上搭建Kubernetes集群(多主)

匿名 (未验证) 提交于 2019-12-02 23:43:01
环境说明: | 主机名称 | IP地址 | 部署软件 | 备注 | | -------- | -------------- | ------------------------------------- | ------ | | M-kube12 | 192.168.10.12 | master+etcd+docker+keepalived+haproxy | master | | M-kube13 | 192.168.10.13 | master+etcd+docker+keepalived+haproxy | master | | M-kube14 | 192.168.10.14 | master+etcd+docker+keepalived+haproxy | master | | N-kube15 | 192.168.10.15 | docker+node | node | | N-kube16 | 192.168.10.16 | docker+node | node | | VIP | 192.168.10.100 | | VIP | # 1、关闭防火墙,SELinux,安装基础包 yum install -y net-tools conntrack-tools wget vim ntpdate libseccomp libtool-ltdl lrzsz

二进制安装kubernetes1.14.1

匿名 (未验证) 提交于 2019-12-02 23:32:01
kubernetes安装 192.168.1.101 k8s-node02 192.168.1.73 k8s-node01 192.168.1.23 k8s-master01 下载:链接: https://pan.baidu.com/s/1dN51XMMNw8GbZ246YubVPQ 提取码: d3ca 1:配置TLS证书 组件: 需要的证书 etcd ca.pem server.pem server-key.pem kube-apiserver ca.pem server.pem server-key.pem kubelet ca.pem ca-key.pem kube-proxy ca.pem kube-proxy.pem kube-proxy-key.pem kubectl ca.pem admin.pem admin-key.pem 安装证书生成工具 [root@k8s-master01 ~]# wget http://pkg.cfssl.org/R1.2/cfssl_linux-amd64 [root@k8s-master01 ~]# wget http://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 [root@k8s-master01 ~]# wget http://pkg.cfssl.org/R1.2/cfssl

k8s部署etcd集群

匿名 (未验证) 提交于 2019-12-02 23:32:01
1、k8s部署高可用etcd集群时遇到了一些麻烦,这个是自己其中一个etcd的配置文件 例如: [Unit] Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target Documentation=https://github.com/coreos [Service] User=k8s Type=notify WorkingDirectory=/var/lib/etcd/ ExecStart=/opt/k8s/bin/etcd \ --data-dir=/var/lib/etcd \ --name=ELK-chaofeng04 \ --cert-file=/etc/etcd/cert/etcd.pem \ --key-file=/etc/etcd/cert/etcd-key.pem \ --trusted-ca-file=/etc/kubernetes/cert/ca.pem \ --peer-cert-file=/etc/etcd/cert/etcd.pem \ --peer-key-file=/etc/etcd/cert/etcd-key.pem \ --peer-trusted-ca-file=/etc/kubernetes/cert

k8s 手动安装指南

匿名 (未验证) 提交于 2019-12-02 22:56:40
kubernetes 实践指南 kubernetes安装与配置 至少两台主机 docker versio >1.9 https://www.docker.com etcd version>2.0 https://github.com/cores/etcd/releases linux core>3.10 安装:yum install kubernetes 二进制安装:https://github.com/kubernetes/kubernetes/releases kubernetes.tar.gz包括了kubernetes的服务程序文件, 解压后 server中包括了要运行的全部服务程序文件 hyperkube 总控程序 kube-apiserver apiserver主程序 kube-apisever.docker_tag apiserver docker 镜像的tag kube-apiserver.tar apiserverdocker 镜像文件 kube-controller-manager controller-manager 主程序 kube-controller-manager.docker.tag controller-manager docker 镜像的tag kube-controller-manager.tar controller-manager

etcd简单测试类java版

孤街浪徒 提交于 2019-12-02 22:51:10
为了方便现场安装完了etcd集群后确认集群是否好用,简单写了个测试类,网上搜的有点乱还有些不能运行,在这里再整理一个能够直接运行的 1、我把etcd的API设成3版本了,调用使用的jetcd,功能挺多,这里只用了最简单的数据增删查操作,再Maven配置文件中增加依赖 <dependency> <groupId>io.etcd</groupId> <artifactId>jetcd-core</artifactId> <version>0.3.0</version> </dependency> 2、直接贴代码了,代码很简单没什么好解释的,要想用复杂功能还需要再去研究jetcd的各种API了 /** * */ package com.zyh.etcd; import static com.google.common.base.Charsets.UTF_8; import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import io.etcd.jetcd.ByteSequence; import io.etcd.jetcd.Client; import io.etcd.jetcd.Watch.Watcher;

Kubernetes2-K8s的集群部署

旧城冷巷雨未停 提交于 2019-12-02 22:03:37
一、简介   1、架构参考 Kubernetes1-K8s的简单介绍   2、实例架构     192.168.216.51 master etcd     192.168.216.53 node1     192.168.216.54 node1   3、拓扑   4、软件版本 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@master ~]# uname -a Linux master 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux [root@master ~]# [root@master ~]# docker version Client: Version: 1.13.1 API version: 1.26     kubernetes版本请见下面安装时候的依赖关系 二、部署软件   1、修改主机名     1)按照如下名称修改主机名每台主机分别修改      hostnamectl set-hostname master      #hostnamectl set-hostname etcd