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
部署带证书的etcd集群 见install_k8s 如果按照官网,etcd证书不要放在/etc/kubernetes/pki下,kubeadm reset会把这个目录清空掉。
部署单点不带证书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/etcdroot@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=DEBUGsystemctl 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