括号图
k8s集群部署
  高可用K8S集群架构
    2台Haproxy
      高可用Keep-alive
    3台master
    3台node(可以有多台，最少2台)
  K8S集群主机配置
    操作系统
      ubuntu20.04 LTS
    软硬件配置
      硬件
        CPU
          4核
        内存
          8GB
        硬盘
          100GB以上
            推荐生产1TB以上
      软件
        负载服务器
          haproxy
          keepalived
        Master节点
          kube-apiserver
          kubectl
          kube-controller-manager
          kube-scheduler
        worker节点
          kubelet
          kube-proxy
          容器运行时
            docker-ce
              cri-dockerd
            containerd
              nerdctl
    网络设置
      haproxy
        192.168.4.211
        192.168.4.212
        虚拟IP： 192.168.4.213
      master
        192.168.4.205
        192.168.4.206
        192.168.4.206
      worker
        192.168.4.207
        192.168.4.208
        192.168.4.209
      gateway
        可选
      DNS设置
        国内
          114.114.114.114
          233.5.5.5
        国外
          8.8.8.8
          1.1.1.1
  k8s部署过程
    K8S集群主机准备
      主机名
      IP地址
      主机名与IP地址
      时间同步
      安全设置
      路由转发
      内核升级（可选）
      安装ipvs相关软件（可选）
        ipadm
        ipvs
      swap关闭
      master节点中安装免密配置
    负载均衡器+高可用
      方案有很多
        haproxy
        nginx
        kube-vip
      步骤
        安装软件
          haproxy
            sudo apt install haproxy -y
          keep-alived
            sudo apt install keepalived -y
        配置
        启动
    K8S集群存储数据库 ETCD
      生成证书
        ca
        etcd
      安装
        下载二进制文件
        配置文件
          yaml
          环境变量
        设置自启动脚本
        启动并配置alias
          查看状态
    角色
      master
        apiserver
        kubectl
        kube-control-manager
        kube-scheduler
        kubelet
        kube-proxy
      worker
        kubelet
        kube-proxy
        容器运行时
          docker
            cri-dockerd
          containerd
            nerdctl
    K8S集群网络插件
      Cilium
        基于 eBPF 的高性能插件
      Calico
        在直接路由模式下运行（BGP 模式），支持基于物理网络的高效网络通信
    Coredns
      安装方式
        helm安装
          仓库
            手动下载
              https://github.com/coredns/helm.git
            helm repo add coredns https://coredns.github.io/helm
helm pull coredns/coredns
          安装
            helm install coredns ./ -n kube-system
        配置文件
      区别
        kube-proxy
          主要处理服务发现和负载均衡
        calico
          负载网络策略和安全
      作用
        DNS 解析服务
        服务发现
        插件功能
          缓存
          负载均衡
          健康检查
      原理
        CoreDNS 解析出服务的 IP 地址后，Pod 发起网络请求，kube-proxy 使用 iptables 或 IPVS 规则将请求转发到对应的 Pod 上
  K8S集群部署方案
    kubeadm
      kubespray
        开源方案
          https://github.com/kubernetes-sigs/kubespray
        特点
          基于ansible
          国外公有云
      kubekey
        加速
          export KKZONE=cn
            阿里云加速
          dockerhub
        kubesphere
      sealos
        部署k8s集群
        desktop
          成本监控
          APP
          DB
          终端
      kind
    二进制
      kubeasz
      手动
    Rancher
      dashboard
  可用性验证
    kubectl命令
    部署应用