2018-04-04-kubernetes1.9 HA install online

本文主要介绍部署一个高可用的k8s集群。master三个节点。使用在线环境,能获取国外镜像。

参考链接:

https://kubernetes.io/docs/setup/independent/high-availability/

https://github.com/cookeem/kubeadm-ha/blob/master/README_CN.md

install HA etcd https

  1. 部署带证书的etcd集群 见install_k8s 如果按照官网,etcd证书不要放在/etc/kubernetes/pki下,kubeadm reset会把这个目录清空掉。

  2. 部署单点不带证书etcd

export ETCD_VERSION=v3.1.18
curl -sSL https://github.com/coreos/etcd/releases/download/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz | tar -xzv --strip-components=1 -C /usr/local/bin/
rm -rf etcd-$ETCD_VERSION-linux-amd64*

mkdir -p /etc/etcd 
mkdir -p /var/lib/etcd/
useradd etcd
groupadd etcd
chown etcd:etcd -R /var/lib/etcd /etc/etcd
root@master1:/home/kubernetes# cat /etc/etcd/etcd.conf  |grep -v ^#
ETCD_DATA_DIR="/var/lib/etcd"
ETCD_LISTEN_PEER_URLS="http://192.168.1.144:2380"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="infra1"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.1.144:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_INITIAL_CLUSTER="infra1=http://192.168.1.144:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
etcserver=WARNING,security=DEBUG

systemctl start etcd

install docker,kubeadm,kubectl

同上一篇 kubernetes 1.9 部署

install kube master1

kubeadm初始化并删除遗留的网络接口

部署网络 flannel or calico

方法见 kubernetes 1.9 部署

查看flannel或者calico能否正常启动。 查看kubedns是否正常,网络正常,kubedns才会正常。 kube-proxy异常也会导致flannel异常。

install kube master2,3

kubeadm初始化并删除遗留的网络接口

config.yaml同上,把advertiseAddress改成本地IP 从master1 copy CA证书

部署haproxy

bind即HA本地端口,后续kube-proxy,kubelet指向api时候需要和这个匹配

修改api,及高可用参数

在所有master上增加apiserver的apiserver-count设置 三个节点依次做,确认正常后下一个,不要一次性做。

kube-proxy配置

node节点join

使用上面init返回的join参数 如果没了,在master

加入成功后,修改kubernetes集群设置,更改server为高可用虚拟IP,端口 vim /etc/kubernetes/bootstrap-kubelet.conf vim /etc/kubernetes/kubelet.conf https://192.168.4.130:6443

Last updated