设为首页 收藏本站
查看: 1474|回复: 0

[经验分享] 使用kubeadm部署高可用 k8s 1.9.2

[复制链接]

尚未签到

发表于 2019-1-31 12:33:49 | 显示全部楼层 |阅读模式
  高可用 k8s 1.9.2安装:
  节点信息:
主机名称               IP                       备注
docker09        10.211.121.9    master和etcd
docker10        10.211.121.10   master和etcd
docker22        10.211.121.22   master和etcd
vip-keepalive       10.211.121.102  vip用于高可用
  一、系统初始化
1、优化yum源:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  cat > /etc/docker/daemon.json
  systemctl start docker
  三、安装k8s
高可用集群部署官方文档:
https://kubernetes.io/docs/setup/independent/high-availability/
  开始之前:
1、由于网络原因,无法联网下载镜像等,离线下载对应安装包和镜像,目前已经下载好了,当然最好还是×××解决,不然各种毛病,需要***可私聊我:
链接:https://pan.baidu.com/s/1dzQyiq 密码:dyvi
  #安装kubelet 、kubectl 、cni
cd k8s192 && yum localinstall *rpm
  #load镜像
for i in ls *tar;do docker load < $i ;done
  2、修改cgroup-driver为cgroupfs:
Environment=&quot;KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs&quot;
sed -i 's/systemd/cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
  3、命令补全:
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source  ~/.bashrc
  Setting up an HA etcd cluster
https://kubernetes.io/docs/setup/independent/high-availability/
1、参考官方文档,Create etcd CA certs
2、Run etcd
选择systemd方式,即非容器方式部署到物理机上。etcd 软件包需要×××下载。
官方文档有个问题:
ExecStart=/usr/local/bin/etcd --name ${PEER_NAME}  
这里的 PEER_NAME 变量 必须要和下面的 一致,否则启动会失败
--initial-cluster =https://:2380,=https://:2380,=https://:2380 \
  第一个etcd启动时,会等待其他节点启动,待其他节点启动后,etcd才能正常。
  检查etc的状态,如下为正常:
etcdctl --endpoints=https://10.211.121.9:2379  --ca-file=/etc/kubernetes/pki/etcd/ca.pem  --cert-file=/etc/kubernetes/pki/etcd/server.pem  --key-file=/etc/kubernetes/pki/etcd/server-key.pemcluster-health
  member 6ebda37987af36d is healthy: got healthy result from https://10.211.121.22:2379
member 15f530c6e1580621 is healthy: got healthy result from https://10.211.121.9:2379
member a43675f5f779e638 is healthy: got healthy result from https://10.211.121.10:2379
cluster is healthy
  3、Set up master Load Balancer
  这里选择 on-site ,用keepalived  在3个节点上构建。
  4、Run kubeadm init on master0
使用kubeadm 初始化master节点
#以防万一,初始化kubeadm并清除以前安装可能留下的痕迹
kubeadm reset
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/
  apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
advertiseAddress: 10.211.121.102
etcd:
endpoints:

  • https://10.211.121.9:2379
  • https://10.211.121.10:2379
  •   https://10.211.121.22:2379
    caFile: /etc/kubernetes/pki/etcd/ca.pem
    certFile: /etc/kubernetes/pki/etcd/client.pem
    keyFile: /etc/kubernetes/pki/etcd/client-key.pem
    kubernetesVersion: 1.9.2
    networking:
    podSubnet: 10.244.0.0/16
    apiServerCertSANs:

    • 10.211.121.9
    • 10.211.121.10
    • 10.211.121.22
    • docker09
    • docker10
    • docker22
      apiServerExtraArgs:
      endpoint-reconciler-type: lease
      advertiseAddress: 10.211.121.102 是VIP 地址。
    podSubnet: 10.244.0.0/16   选择和flannel 组件部署的同一个子网 ,否则会失败。
    (必须指定版本,否则会远程拉取镜像最终失败)

  执行:
kubeadm init --config=/etc/kubernetes/config.yaml
  把生成的密钥文件,同步到其他master节点:
scp root@:/etc/kubernetes/pki/ /etc/kubernetes/pki
rm apiserver.

  5、在其他master节点,同样执行
kubeadm init --config=/etc/kubernetes/config.yaml
  6、安装网络模块
这里使用flannel网络模块,覆盖网络。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml
  或者:
kubectl apply -f https://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/kubeadm/calico.yaml
  https://kubernetes.io/docs/tasks/run-application/run-stateless-application-deployment/
  7、 为了测试我们把master 设置为 可部署role
默认情况下,为了保证master的安全,master是不会被调度到app的。你可以取消这个限制通过输入:
kubectl taint nodes --all node-role.kubernetes.io/master-
  至此,部署完成,3个master节点。
kubectl  get  node
  NAME       STATUS     ROLES     AGE       VERSION
docker09   Ready      master    33m       v1.9.2
docker10   NotReady   master    31m       v1.9.2
docker22   Ready      master    30m       v1.9.2
  参考文档:
https://kubernetes.io/docs/setup/independent/high-availability/
https://www.kubernetes.org.cn/3808.html




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670052-1-1.html 上篇帖子: 安装k8s 下篇帖子: 金庸武功之“七伤拳”
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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