ubantu24使用kubekey v4.0.5 安装 k8s v1.34.9 + kubesphere v4.2.3

集群规划(3 节点),使用kubekey v4.0.5部署k8s。

master节点,主机名:k8s-master-01,ip:172.29.128.1

工作节点1:主机名:k8s-worker-01,ip:172.29.132.68 

工作节点2:主机名:k8s-worker-02,ip:172.29.132.69 

机器名 内网 ip
k8s-master-01 172.29.128.1
k8s-worker-01 172.29.132.68 
k8s-worker-02 172.29.132.69 

 

 

 

 

 

一、所有节点前置初始化(3 台机器全部执行)

1. 关闭防火墙、swap、配置主机名、hosts

# 1. 设置主机名(分别对应三台机器执行)
# master节点执行
hostnamectl set-hostname k8s-master-01
# worker01执行
hostnamectl set-hostname k8s-worker-01
# worker02执行
hostnamectl set-hostname k8s-worker-02

# 2. 写入hosts(三台机器统一执行)
cat >> /etc/hosts << EOF
172.29.128.1    k8s-master-01
172.29.132.68   k8s-worker-01
172.29.132.69   k8s-worker-02
EOF

# 3. 永久关闭swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab

# 4. 关闭ufw防火墙
systemctl stop ufw
systemctl disable ufw

# 5. 内核模块加载、sysctl容器网络配置
modprobe overlay
modprobe br_netfilter

cat >> /etc/sysctl.conf << EOF
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF
sysctl -p

# 6. 安装基础依赖
apt install -y curl wget openssl openssh-server ca-certificates sshpass tar unzip ipset ipvsadm socat conntrack

 

2. 配置免密 ssh(仅 master 节点操作,打通所有节点)

# master节点生成密钥,一路回车
ssh-keygen
# 分发密钥到三台机器
ssh-copy-id root@172.29.128.1
ssh-copy-id root@172.29.132.68
ssh-copy-id root@172.29.132.69

# 验证免密连通
ssh root@172.29.128.1 hostname
ssh root@172.29.132.68 hostname
ssh root@172.29.132.69 hostname

 

3. 时区统一(所有节点)

timedatectl set-timezone Asia/Shanghai

 

二、Master 节点安装 KubeKey v4.0.5

1. 下载 kk 二进制

# 国内加速
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v4.0.5 sh -
# 赋予权限
chmod +x kk
mv kk /usr/local/bin/
kk version

 

2. 生成k8s v1.34.9集群配置文件(不包含kubesphere的配置 )

kk create config --with-kubernetes v1.32.6 --output k8s-v1.32.6.yaml

 

注意:kubekey v4.x不能一条命令生成k8s + kubesphere配置的文件了,没有 --with-kubesphere 参数。

 

3. 如果需要同步安装kubesphere,在 k8s-v1.34.9.yaml文件的spec节点内追加kubesphere配置(可选,可以后面安装kubesphere),

spec:
  addons:
    ks:
      version: v4.2.3
      config:
        apiVersion: installer.kubesphere.io/v1alpha1
        kind: ClusterConfiguration
        metadata:
          name: ks-installer
          namespace: kubesphere-system
        spec:
          persistence:
            storageClass: ""
          common:
            core:
              console:
                enableMultiLogin: true
                port: 30880
                type: NodePort
          devops:
            enabled: true
          logging:
           enabled: true
          monitoring:
            enabled: true
        alerting:
          enabled: true
        auditing:
          enabled: false
        servicemesh:
          enabled: false

 

4. 清加master节点与工作节点配置清单文件

kk create inventory --output inventory.yaml

 

编辑 vim inventory.yaml, 添加master节点与工作节点配置:

apiVersion: kubekey.kubesphere.io/v1
kind: Inventory
metadata:
  name: default
spec:
  hosts: # your can set all nodes here. or set nodes on special groups.
    k8s-master-01:
      connector:
        type: ssh
        host: 172.29.128.1
        port: 22
        user: root
        password: "你的root密码"
      internal_ipv4: 172.29.128.1

    k8s-worker-01:
      connector:
        type: ssh
        host: 172.29.132.68
        port: 22
        user: root
        password: "你的root密码"
      internal_ipv4: 172.29.132.68

    k8s-worker-02:
      connector:
        type: ssh
        host: 172.29.132.69
        port: 22
        user: root
        password: "你的root密码"
      internal_ipv4: 172.29.132.69

  groups:
    # all kubernetes nodes.
    k8s_cluster:
      groups:
        - kube_control_plane
        - kube_worker
    # control_plane nodes
    kube_control_plane:
      hosts:
        - k8s-master-01
    # worker nodes
    kube_worker:
      hosts:
        - k8s-worker-01
        - k8s-worker-02
    # etcd nodes when etcd_deployment_type is external
    etcd:
      hosts:
        - k8s-master-01
#    image_registry:
#      hosts:
#        - localhost
    # nfs nodes for registry storage. and kubernetes nfs storage
#    nfs:
#      hosts:
#        - localhost

 

 

5.单独安装k8s,kubesphere需要之后单独安装。

kk create cluster k8s-v1.32.6.yaml inventory.yaml

 

6.单独安装kubesphere

kk addons install ks --version v4.2.3

 

安装的时候遇到下载etcd v3.6.5下载失败的情况,解决方案,在本地手动下载etcd v3.6.5

https://github.com/etcd-io/etcd/releases/download/v3.6.5/etcd-v3.6.5-linux-amd64.tar.gz

 

posted @ 2026-07-20 19:41  民工黑猫  阅读(6)  评论(0)    收藏  举报