请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

本文来自

边缘计算专区

边缘计算专区

人已关注

请添加对本版块的简短描述

精选帖子

Kubernetes 集群架构 etc

[复制链接]
1670 abc 发表于 2018-12-14 22:15:03
etcd 集群
https://discovery.etcd.io/new?size=3 获取 token 后,把 etcd.yaml 放到每台机器的 /etc/kubernetes/manifests/etcd.yaml,并替换掉 ${DISCOVERY_TOKEN}, ${NODE_NAME} 和 ${NODE_IP},即可以由 kubelet 来启动一个 etcd 集群。

对于运行在 kubelet 外部的 etcd,可以参考 etcd clustering guide 来手动配置集群模式。

kube-apiserver
把 kube-apiserver.yaml 放到每台 Master 节点的 /etc/kubernetes/manifests/,并把相关的配置放到 /srv/kubernetes/,即可由 kubelet 自动创建并启动 apiserver:

basic_auth.csv - basic auth user and password

ca.crt - Certificate Authority cert

known_tokens.csv - tokens that entities (e.g. the kubelet) can use to talk to the apiserver

kubecfg.crt - Client certificate, public key

kubecfg.key - Client certificate, private key

server.cert - Server certificate, public key

server.key - Server certificate, private key

apiserver 启动后,还需要为它们做负载均衡,可以使用云平台的弹性负载均衡服务或者使用 haproxy/lvs/nginx 等为 master 节点配置负载均衡。

另外,还可以借助 Keepalived、OSPF、Pacemaker 等来保证负载均衡节点的高可用。

注意:

大规模集群注意增加 --max-requests-inflight(默认 400)

使用 nginx 时注意增加 proxy_timeout: 10m

controller manager 和 scheduler
controller manager 和 scheduler 需要保证任何时刻都只有一个实例运行,需要一个选主的过程,所以在启动时要设置 --leader-elect=true,比如

kube-scheduler --master=127.0.0.1:8080 --v=2 --leader-elect=true
kube-controller-manager --master=127.0.0.1:8080 --cluster-cidr=10.245.0.0/16 --allocate-node-cidrs=true --service-account-private-key-file=/srv/kubernetes/server.key --v=2 --leader-elect=true
把 kube-scheduler.yaml 和 kube-controller-manager 放到每台 Master 节点的 /etc/kubernetes/manifests/,并把相关的配置放到 /srv/kubernetes/,即可由 kubelet 自动创建并启动 kube-scheduler 和 kube-controller-manager。

https://kubernetes.feisky.xyz/bu-shu-pei-zhi/cluster



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表