k8s集群安装教程

k8s集群安装教程

master、node节点安装

  1. 切换到root用户

    1
    sudo su -

  2. 配置host

    1
    2
    3
    4
    5
    cat << EOF >> /etc/hosts
    192.169.1.210 k8s-master
    192.169.1.211 k8s-node1
    192.169.1.212 k8s-node2
    EOF

  3. 修改主机名 每台主机都要修改

    1
    2
    3
    hostnamectl set-hostname k8s-master
    hostnamectl set-hostname k8s-node1
    hostnamectl set-hostname k8s-node2

  4. 关闭swap分区 每台主机都要关闭

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 临时关闭
    swapoff -a
    # 永久关闭(老版本)
    sed -i '/swap/s/^\(.*\)$/#\1/g' /etc/fstab
    # 永久关闭(新版本)
    只需要编辑 /etc/fstab 文件,不要注释掉 swap 那一行
    而是在其后面默认的挂载选项 defaults 后面加上 noauto 变成 defaults,noauto。

    cat /etc/fstab
    # 查看是否注释

  5. 安装docker

  6. 修改docker Cgroup驱动

    1
    2
    3
    4
    5
    cat <<EOF> /etc/docker/daemon.json
    {
    "exec-opts":["native.cgroupdriver=systemd"]
    }
    EOF

  7. 安装k8s

    1
    apt-get install -y kubelet=1.23.8-00 kubeadm=1.23.8-00 kubectl=1.23.8-00

  8. 设置kubectl命令补全

    1
    apt-get install bash-completion

    1
    echo 'source /usr/share/bash-completion/bash_completion' >>~/.bashrc

    1
    echo 'source <(kubectl completion bash)' >>~/.bashrc

  9. 初始化k8s-master节点

    1
    –apiserver-advertise-address 192.168.2.248 填写你自己k8s-master的IP地址

    1
    2
    3
    4
    5
    kubeadm init \
    --apiserver-advertise-address 192.168.2.248 \
    --image-repository registry.aliyuncs.com/google_containers \
    --pod-network-cidr=10.244.0.0/16 \
    --service-cidr=10.1.0.0/16

  10. 拷贝 kubectl 使用的连接 k8s 认证文件到默认路径

    1
    exit
    1
    mkdir -p $HOME/.kube
    1
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    1
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    1
    echo 'export KUBECONFIG=$HOME/.kube/config' >>~/.bashrc
    • 初始化成功之后记录以下信息,添加node节点时使用。
    1
    2
    kubeadm join 192.169.1.210:6443 --token s2zrot.578bgfdqcr44aivw \
    --discovery-token-ca-cert-hash sha256:a4b764099ac50a152d8d9a7640c16380297bae8c7ffafd6e3ca76144bfde9f6c
  11. 安装Pod网络插件 calico

    1
    kubectl apply -f https://docs.projectcalico.org/v3.18/manifests/calico.yaml
  12. 添加node节点

    • 以下操作在Node节点上执行
    1
    sudo su -
    1
    2
    kubeadm join 192.169.1.210:6443 --token s2zrot.578bgfdqcr44aivw \
    --discovery-token-ca-cert-hash sha256:a4b764099ac50a152d8d9a7640c16380297bae8c7ffafd6e3ca76144bfde9f6c

k8s dashboard

  1. 部署 Dashboard UI

    1
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml

  2. 更改ClusterIP为NodePort

    1
    kubectl -n kubernetes-dashboard edit service kubernetes-dashboard

  3. 创建配置文件 dashboard-adminuser.yaml

    1
    wget https://github.com/realwujing/k8s-learning/blob/dff12f0c9f2cf74ee13e0aa44babbd2786279bf2/k8s%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2/dashboard-adminuser.yaml

    具体参考:

  4. 执行

    1
    kubectl apply -f dashboard-adminuser.yaml

  5. k8s忘记dashboard密码

    1
    kubectl -n kubernetes-dashboard get secret

    1
    kubectl describe secret admin-user-token-76rq7 -n kubernetes-dashboard

    也可通过下方一行命令获取token:

    1
    kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

  6. 获取 kubernetes-dashboard 对外暴露端口

    1
    kubectl get svc --all-namespaces

  7. 访问k8s dashboard

    1
    https://192.169.1.210:32188

  8. Chrome您的连接不是私密连接解决办法

    1
    thisisunsafe

kubeadm reset

master节点


k8s集群安装教程
https://realwujing.github.io/linux/k8s/k8s集群部署/k8s集群安装教程/
作者
Wu Jing
发布于
2024年7月23日
许可协议