一、准备6台 新的(很重要) 虚拟机ubuntu18.04

  1. 设置主机名

    hostnamectl set-hostname k8s-master1&&bash
    hostnamectl set-hostname k8s-master2&&bash
    hostnamectl set-hostname k8s-master3&&bash
    hostnamectl set-hostname k8s-worker1&&bash
    hostnamectl set-hostname k8s-worker2&&bash
    hostnamectl set-hostname k8s-worker3&&bash

  1. 为每台虚拟机设置静态ip

vim /etc/netplan/50-cloud-init.yaml

    network:
    ethernets:
        ens160:
            dhcp4: no
            addresses:
               - 172.16.0.120/24
            gateway4: 172.16.0.1
            nameservers:
                    addresses: [8.8.8.8, 1.1.1.1]
    version: 2

  1. 每台虚拟机关闭防火墙

    ufw disable

  1. 每一台上都临时关闭swap && 永久关闭swap

    swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
  1. 安装chrony,时钟同步

 apt-get install -y chrony && service chrony start
  1. 每一台上都安装依赖

    apt-get install -y socat conntrack ebtables ipset

二、安装kubekey

  1. k8s-master1设置环境变量

    export KKZONE=cn
  1. k8s-master1安装kubekey

    curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.2 sh -

  1. 查看能使用 KubeKey 安装的所有受支持的 Kubernetes 版本

    ./kk version --show-supported-k8s

  1. 生成部署配置

    ./kk create config --with-kubernetes v1.24.1 --with-kubesphere v3.3.1

  1. 修改配置config-sample.yaml

    apiVersion: kubekey.kubesphere.io/v1alpha2
    kind: Cluster
    metadata:
      name: sample
    spec:
      hosts:
      - {name: k8s-master1, address: 172.16.0.120, internalAddress: 172.16.0.120, user: root, password: "xxxxx"} # 虚拟机的登录密码
      - {name: k8s-master2, address: 172.16.0.121, internalAddress: 172.16.0.121, user: root, password: "xxxxx"}
      - {name: k8s-master3, address: 172.16.0.122, internalAddress: 172.16.0.122, user: root, password: "xxxxx"}
      - {name: k8s-worker1, address: 172.16.0.123, internalAddress: 172.16.0.123, user: root, password: "xxxxx"}
      - {name: k8s-worker2, address: 172.16.0.124, internalAddress: 172.16.0.124, user: root, password: "xxxxx"}
      - {name: k8s-worker3, address: 172.16.0.125, internalAddress: 172.16.0.125, user: root, password: "xxxxx"}
      roleGroups:
        etcd:
        - k8s-master1
        - k8s-master2
        - k8s-master3
        control-plane: 
        - k8s-master1
        - k8s-master2
        - k8s-master3
        worker:
        - k8s-worker1
        - k8s-worker2
        - k8s-worker3
      controlPlaneEndpoint:
        ## Internal loadbalancer for apiservers 
        internalLoadbalancer: haproxy

三、安装kubernetes 和 KubeSphere

  1. 防止出错再次检查和配置环境变量

    export KKZONE=cn
  1. 执行安装命令

 ./kk create cluster -f config-sample.yaml 

  1. 访问页面http://172.16.0.120:30880

四、 遇见问题及解决方法

  1. 无法pull镜像问题

更改/etc/containerd/config.toml

注释#disabled_plugins = ["cri"]

  1. 部署中途各种连接类报错,not find k8s-master1等错误

首先是否保证是新的虚拟机上部署,经测试,第一次部署在已使用过的虚拟机中各种报错,

可能是某些其他配置冲突导致,故一定要用镜像重新创建新的虚拟机再按照此教程部署。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐