• kubeadm部署k8s高可用集群


    HA的2中部署方式
    一种是将etcd与Master节点组件混布在一起

    另外一种方式是,使用独立的Etcd集群,不与Master节点混布

    环境:
    192.168.0.100 master1
    192.168.0.110 master2
    192.168.0.120 master3
    192.168.0.130 node1
    192.168.0.140 node2
    192.168.0.150 node3

    1.下载docker源
    wget https://download.docker.com/linux/centos/docker-ce.repo

    2.安装docker服务并加入开机启动
    yum -y install docker-ce
    systemctl start docker && systemctl enable docker

    3.配置docker加速器
    cat >> /etc/docker/daemon.json << EOF # daemon.json文件如果没有自己创建

    4.重启docker服务
    systemctl restart docker

    5.更改各节点主机名
    hostnamectl set-hostname 主机名

    6.配置各节点hosts文件
    cat >> /etc/hosts << EOF

    7.关闭各个节点防火墙和SElinux # 根据自己的实际情况来安排
    systemctl stop firewalld && systemctl disable firewald
    cat >> /etc/selinux/config << EOF

    8.关闭每台服务器swap分区
    cat >> /etc/fstab

    9.重启服务器
    reboot

    10.同步每台节点的时间 # 用chrony或者ntpdate都行

    11.每台服务器内核调整,将桥接的IPv4流量传递到iptables的链
    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_nonlocal_bind = 1
    net.ipv4.ip_forward = 1
    执行sysctl -p生效

    12.配置每台服务器增加k8s的yum源
    cat > /etc/yum.repos.d/kubernetes.repo << EOF
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

    13.每台服务器安装ipset服务
    yum -y install ipvsadm ipset sysstat conntrack libseccomp

    14.每台服务器开启ipvs模块
    cat > /etc/sysconfig/modules/ipvs.modules <<EOF
    #!/bin/sh
    modprobe -- ip_vs
    modprobe -- ip_vs_rr
    modprobe -- ip_vs_wrr
    modprobe -- ip_vs_sh
    modprobe -- nf_conntrack_ipv4
    给权限 运行 查询是否已经启用
    chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

    15.所有master节点安装haproxy和keepalived并修改配置文件
    yum -y install haproxy keepalived
    cat /etc/keepalived/keepalived.conf

    cat /etc/haproxy/haproxy.cfg

    16.健康监测脚本

    17.启动keepalived和haproxy
    systemctl start keepalived && systemctl enable keepalived
    systemctl start haproxy && systemctl enable haproxy

    18.查看vip IP地址

    19.每个节点安装kubeadm,kubelet和kubectl # 安装的kubeadm、kubectl和kubelet要和kubernetes版本一致,kubelet加入开机启动之后不手动启动,要不然会报错,初始化集群之后集群会自动启动kubelet服务!!!
    yum -y install kubeadm-1.18.2 kubelet-1.18.2 kubectl-1.18.2
    systemctl enable kubelet && systemctl daemon-reload

    20.获取默认配置文件
    kubeadm config print init-defaults > kubeadm-config.yaml

    21.修改初始化配置文件
    cat > kubeadm-config.yaml < EOF


    22.下载相关镜像
    kubeadm config images pull --config kubeadm-config.yaml

    23.初始化集群
    kubeadm init --config kubeadm-config.yaml

    24.把主节点证书复制到其它master节点

    25.每台节点kubelet加入开机启动
    systemctl enable kubelet && systmectl daemon-reload

    26.加入集群认证

    27.查看所有节点状态

    28.安装网络插件
    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    29.查看节点状态


    30.安装dashboard
    wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

    31.修改recommended.yaml文件
    vim recommended.yaml

    32.创建证书

     #创建kubernetes-dashboard-certs对象
    

    kubectl create secret generic kubernetes-dashboard-certs --from-file=dashboard.key --from-file=dashboard.crt -n kubernetes-dashboard

    33.运行.yml文件
    kubectl create -f recommended.yaml

    34.注意:这里可能会报如下所示。
    Error from server (AlreadyExists): error when creating "./recommended.yaml": namespaces "kubernetes-dashboard" already exists
    这是因为我们在创建证书时,已经创建了kubernetes-dashboard命名空间,所以,直接忽略此错误信息即可。

    35.查看安装结果
    kubectl get pods -A -o wide

    36.查看暴露端口
    kubectl get service -n kubernetes-dashboard -o wide

    37.创建dashboard管理员
    vim dashboard-admin.yaml

    38.保存退出后执行如下命令创建管理员
    kubectl create -f dashboard-admin.yaml

    39.为用户分配权限
    vim dashboard-admin-bind-cluster-role.yaml

    40.保存退出后执行如下命令为用户分配权限
    kubectl create -f dashboard-admin-bind-cluster-role.yaml

    41.查看并复制用户Token
    kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk '{print $1}')

    具体执行情况如下所示

    42.查看dashboard界面
    在浏览器中打开链接 https://192.168.175.101:30000/#/login ,如下所示。

    43.这里,我们选择Token方式登录,并输入在命令行获取到的Token,如下所示

    44.点击登录后进入dashboard,如下所示

  • 相关阅读:
    什么是重构,什么不是重构
    Sql Server Merge 关键字 一个条语句实现增删改查
    SQLServer查询一天时间内的数据
    数据库索引原理 二
    重构代码时的7个阶段
    “旁观者效应”是如何毁掉我们的代码
    ClassNotFoundException: org.apache.storm.kafka.spout.KafkaSpoutConfig
    Flume+Kafka整合使用
    SLF4J: Detected both log4joverslf4j.jar AND bound slf4jlog4j12.jar on the class path
    Could not find or load main class org.apache.flume.tools.GetJavaProperty
  • 原文地址:https://www.cnblogs.com/lfl17718347843/p/13417304.html
Copyright © 2020-2023  润新知