k8s 部署etcd高可用集群

#ceph01:
yum -y install etcd
vim /etc/etcd/etcd.conf
ETCD_DATA_DIR="/var/lib/etcd/"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="node1"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.14:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.14:2379"
ETCD_INITIAL_CLUSTER="node1=http://10.0.0.14:2380,node2=http://10.0.0.15:2380,node3=http://10.0.0.16:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

scp -rp /etc/etcd/etcd.conf root@10.0.0.15:/etc/etcd/etcd.conf
scp -rp /etc/etcd/etcd.conf root@10.0.0.16:/etc/etcd/etcd.conf
systemctl start etcd
etcdctl member list #验证
export ETCDCTL_API=3
etcdctl snapshot restore etcd_back.file 
unset ETCDCTL_API
etcdctl ls /

#ceph02:
yum -y install etcd
vim /etc/etcd/etcd.con
ETCD_NAME="node2"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.15:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.15:2379"
其他配置如ceph01
systemctl start etcd
etcdctl member list

#ceph03:
yum -y install etcd
vim /etc/etcd/etcd.conf
ETCD_NAME="node3"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.0.0.16:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://10.0.0.16:2379"
其他配置如ceph01
systemctl start etcd
etcdctl member list

#k8s-master
systemctl start etcd
etcdctl member list
systemctl stop kube-apiserver.service
export ETCDCTL_API=3
etcdctl --endpoints http://10.0.0.11:2379 snapshot save etcd_back.file
scp -rp etcd_back.file root@10.0.0.14:/root
k8s高可用集群部署
#k8s-master:
vim /etc/sysconfig/flanneld 
FLANNEL_ETCD_ENDPOINTS="http://10.0.0.14:2379,http://10.0.0.15:2379,http://10.0.0.16:2379"
scp -rp  /etc/sysconfig/flanneld root@10.0.0.12:/etc/sysconfig/flanneld
scp -rp  /etc/sysconfig/flanneld root@10.0.0.13:/etc/sysconfig/flanneld
systemctl  restart flanneld
systemctl  restart docker
vim /etc/kubernetes/apiserver 
KUBE_ETCD_SERVERS="--etcd-servers=http://10.0.0.14:2379,http://10.0.0.15:2379,http://10.0.0.16:2379"
vim /etc/kubernetes/config 
KUBE_MASTER="--master=http://127.0.0.1:8080"
systemctl restart kube-apiserver.service 
systemctl restart kube-controller-manager.service kube-scheduler.service
yum install keepalived.x86_64 -y
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL_11
}

vrrp_instance VI_1 {
    state BACKUP
    nopreempt
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.10
    }
}
systemctl  enable  keepalived
systemctl  start   keepalived

#k8s-node-1
systemctl  restart flanneld
systemctl  restart docker
yum install kubernetes-master.x86_64 -y
scp -rp 10.0.0.11:/etc/kubernetes/apiserver /etc/kubernetes/apiserver
scp -rp 10.0.0.11:/etc/kubernetes/config /etc/kubernetes/config 
systemctl stop kubelet.service 
systemctl disable kubelet.service
systemctl stop kube-proxy.service 
systemctl disable kube-proxy.service

systemctl enable kube-apiserver.service
systemctl restart kube-apiserver.service
systemctl enable kube-controller-manager.service
systemctl restart kube-controller-manager.service
systemctl enable kube-scheduler.service
systemctl restart kube-scheduler.service
yum install keepalived.x86_64 -y
! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL_12
}

vrrp_instance VI_1 {
    state BACKUP
    nopreempt
    interface eth0
    virtual_router_id 51
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.0.0.10
    }
}
systemctl  enable  keepalived
systemctl  start   keepalived

#k8s-node-2
systemctl  restart flanneld
systemctl  restart docker
vim /etc/kubernetes/kubelet
KUBELET_API_SERVER="--api-servers=http://10.0.0.10:8080"

vim /etc/kubernetes/config 
KUBE_MASTER="--master=http://10.0.0.10:8080"

systemctl restart kubelet.service kube-proxy.service

#ceph01:
etcdctl mk /atomic.io/network/config '{"Network":"172.18.0.0/16","Backend": {"Type": "vxlan"}}'