zoukankan      html  css  js  c++  java
  • k8s keepalived haproxy 集群成功

    Docker版的gitlab成功,正在推进到项目中使用;kubeadm 安装k8s单机版成功,所以,一直想把k8s延伸到生产环境;

    综合网上教程,加上docker的keepalived和Haproxy成功的经验,结合多位大佬经验,测试成功;

    期间从《Kubernetes权威指南 》《0-Kubernetes指南-倪朋飞》开源版,《再也不踩坑的kubernetes实战指南》《每天5分钟玩转Kubernetes》,

    以上数据和材料多是大佬编写,示例都是点睛之作;个人Linux知识稍微缺乏,多次没有成功,加强学习好多基础知识后,测试成功;

    把基础经验编写如下:

    • 多次没有成功,是一下2个基础知识的问题,特意点出:

    1. ETCD;K8S基础组件之一,通过tecd创建K8S HA 集群,至少2台才可以运行,1台不行,所以是所有k8s ha 集群推荐master节点至少是3台;

    2. ipvs,IP Virtual Server,简写为IPVS,linux基础自己,支持负载均衡;k8s默认的iptables没有成功,大佬忽略;

    补充:ipvs一定要严肃,每台master节点必须安装和配置OK,要不然会遇到访问问题;我已经遇到,示例中的master3节点没有配置好ipvs,集群负载均衡到m3老遇到问题;

    K8S集群优化之路由转发:使用IPVS替代iptable
    • 集群基础知识

    1. haproxy 这个比较常见,1个要点,就是约定k8s集群的端口,按照以上多本数据资料,自定为12567;

    2. keepalived,1个要点,priority 100 #初始权重,BACKUP 节点的一定要比这个要小;

    • kubeadm知识点

    1. 初始化文件,

    要点 1 本机ip 2  master节点列表 3 controlPlaneEndpoint 集群ip和端口 4 podSubnet k8s 网络 flannel组件需要的内部ip段,其他网络组件设置不同 5 支持 ipvs

    apiVersion: kubeadm.k8s.io/v1beta2
    bootstrapTokens:
    - groups:
      - system:bootstrappers:kubeadm:default-node-token
      token: abcdef.0123456789abcdef
      ttl: 24h0m0s
      usages:
      - signing
      - authentication
    kind: InitConfiguration
    localAPIEndpoint:
      advertiseAddress: *.*.60.111 # 1 本机IP
      bindPort: 6443
    nodeRegistration:
      criSocket: /var/run/dockershim.sock
      name: k8su2020m01
      taints:
      - effect: NoSchedule
        key: node-role.kubernetes.io/master
    ---
    apiServer:
      certSANs: # 2 master节点列表
      - k8su2020m01
      - k8su2020m02
      - *.*.60.111
      - *.*.60.112
      - *.*.60.100
      timeoutForControlPlane: 4m0s
    apiVersion: kubeadm.k8s.io/v1beta2
    certificatesDir: /etc/kubernetes/pki
    clusterName: kubernetes
    controllerManager: {}
    dns:
      type: CoreDNS
    etcd:
      local:
        dataDir: /var/lib/etcd
    imageRepository: registry.aliyuncs.com/google_containers
    kind: ClusterConfiguration
    kubernetesVersion: v1.18.3
    controlPlaneEndpoint: *.*.60.100:12567 # 3集群ip和端口
    networking:
      dnsDomain: cluster.local
      serviceSubnet: 10.96.0.0/12
      podSubnet: 10.244.0.0/16 # 4flannel 组件内网段设置
    scheduler: {}
    ---
    apiVersion: kubeproxy.config.k8s.io/v1alpha1
    kind: KubeProxyConfiguration
    ipvs:
      minSyncPeriod: 1s
      scheduler: rr
      syncPeriod: 10s
    mode: ipvs # 5 支持IPVS模式

    2  kubeadm init --config=k8s.yaml --upload-certs,  --upload-certs参数

    执行成功;

    3 master 节点加入的参数 这个倒不用担心,以上初始化成功会提示;主节点加入和工作节点加入

    k8s 知识点就不多谢了,这个教程很多,例如关闭swap,安装3剑客等等;

    成功后测试集群: 关闭 1个master,其他2个master还可以执行 kubeclt命令,说明集群成功;

  • 相关阅读:
    寒假自学1.11
    寒假学习1.10
    寒假自学1.09
    寒假自学1.08-python的安装学习
    寒假1.08
    寒假自学1.07
    寒假自学1.06-tensorflow安装过程
    java & | 运算符
    java << >>
    java基础百位数十位数个位数
  • 原文地址:https://www.cnblogs.com/cangfriend/p/13265391.html
Copyright © 2011-2022 走看看