zoukankan      html  css  js  c++  java
  • master节点的部署介绍和前置工作

    组件介绍

    kubernetes master节点运行组件如下: kube-apiserverkube-schedulerkube-controller-managerkube-nginx

    • kube-apiserver、kube-scheduler、kube-controller-manager均以多实例模式运行
    • kube-scheduler和kube-controller-manager会自动选举一个leader实例,其他实例处于阻塞模式,当leader挂了后,重新选举产生的leader,从而保证服务可用性
    • kube-apiserver是无状态的,需要通过kube-nginx进行代理访问,从而保证服务可用性

    以下操作都在K8s-01操作

    下载kubernetes二进制包,并分发到所有master节点

    cd /opt/k8s/work
    wget https://dl.k8s.io/v1.15.6/kubernetes-server-linux-amd64.tar.gz
    tar -xzvf kubernetes-server-linux-amd64.tar.gz
    cd kubernetes
    tar -xzvf  kubernetes-src.tar.gz
    

    下载解压的工作如果在 部署前期准备工作 做过,这里就不需要重复操作。

    将master所需要的二进制文件拷贝到所有master机器上

    cd /opt/k8s/work
    source /opt/k8s/bin/environment.sh
    for node_ip in ${MASTER_IPS[@]}
      do
        echo ">>> ${node_ip}"
        scp kubernetes/server/bin/{apiextensions-apiserver,cloud-controller-manager,kube-apiserver,kube-controller-manager,kube-proxy,kube-scheduler,kubeadm,kubectl,kubelet,mounter} root@${node_ip}:/opt/k8s/bin/
        ssh root@${node_ip} "chmod +x /opt/k8s/bin/*"
      done
    

    kube-apiserver 高可用

    • 使用Nginx 4层透明代理功能实现k8s节点(master节点和worker节点)高可用访问kube-apiserver的步骤
    • 控制节点的kube-controller-manager、kube-scheduler是多实例部署,所以只要一个实例正常,就可以保证集群高可用
    • 集群内的Pod使用k8s服务域名kubernetes访问kube-apiserver,kube-dns会自动解析多个kube-apiserver节点的IP,所以也是高可用的
    • 在每个Nginx进程,后端对接多个apiserver实例,Nginx对他们做健康检查和负载均衡
      kubelet、kube-proxy、controller-manager、schedule通过本地nginx (监听我们vip 10.0.20.10)访问kube-apiserver,从而实现kube-apiserver高可用
  • 相关阅读:
    Memcached
    Keepalived
    Nginx配置根据客户端设备转发
    ASP.NET跨平台实践:无需安装Mono的Jexus“独立版”
    Linux系统下如何查看CPU个数
    Ubuntu 安装mysql和简单操作
    python类库26[web2py之基本概念]
    Ubuntu Server 12.04 静态IP简洁配置
    全面解读python web 程序的9种部署方式
    Python3实现连接SQLite数据库的方法
  • 原文地址:https://www.cnblogs.com/winstom/p/11992127.html
Copyright © 2011-2022 走看看