当前位置: 首页 > ds >正文

Ubuntu+k3s+karmada离线安装部署说明

一、环境说明

1)、软件说明

序号软件名称版本作用资源来源
1vmware17.5.2虚拟机模拟
2Ubuntu20.04.6 LTS操作系统
3k3sv1.33.1github地址
4karmadav1.13.0

说明:

k3s和karmada的相关资源已经上传到【百度云盘】提取码: mt7a

2)、资源说明

本人机器资源如下:

序号资源名称大小说明
1cpu8ui7-14700
2mem8GB5600MHZ
3磁盘100GBSDD

3)、软件包说明

序号包名说明
1k3s-airgap-images-amd64.tark3s官方给出的镜像包
2install.shk3s官方给出的安装脚本。
3karmada/karmada-images-amd64.tar.gzkarmada的镜像包
4karmada/其他安装karmada的cli,dashboard,crds所需

4)、其他需要提前准备的

除了上述的内容,还要在环境中:

二、安装步骤

注意:vmware,Ubuntu,containerd的安装不再进行说明。需要确认现场是否已经安装好。

1、安装k3s

切换到root权限,将软件包:k3s-karmada.tar.gz放入服务器中。本文为:/home/k3s/images/。

1)、安装k3s客户端
mkdir -p /home/k3s/images/
tar -zxvf k3s-karmada.tar.gz#将相关资源放入该目录
sudo chmod +x k3s && sudo mv k3s /usr/local/bin/
2)、导入k3s需要镜像

k3s使用内置的cri非已有的docker或conainerd。故其加载镜像的方式也不一样。

sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/

注意:该目录不能改变。k3s启动时候回自动加载该目录的k3s镜像。

4)、执行自动化安装脚本
chmod +x install.sh
export INSTALL_K3S_SKIP_DOWNLOAD=true
./install.sh --disable traefik

执行过程回显如下:

root@ubuntu:/home/k3s/images# export INSTALL_K3S_SKIP_DOWNLOAD=true
root@ubuntu:/home/k3s/images# ./install.sh --disable traefik
[INFO]  Skipping k3s download and verify
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s
验证

验证k3s安装结果

root@ubuntu:/home/k3s/images# kubectl get pod -A
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   coredns-697968c856-7wq9r                  1/1     Running   0          63s
kube-system   local-path-provisioner-774c6665dc-bnxxx   1/1     Running   0          63s
kube-system   metrics-server-6f4c6675d5-p42rc           1/1     Running   0          63s

此时k3s镜像被加载:

root@ubuntu:/home/k3s/images# /usr/local/bin/crictl images
IMAGE                                        TAG                    IMAGE ID            SIZE
docker.io/rancher/klipper-helm               v0.9.5-build20250306   ca208f9f2a84d       192MB
docker.io/rancher/klipper-lb                 v0.4.13                f7415d0003cb6       12.7MB
docker.io/rancher/local-path-provisioner     v0.0.31                8309ed19e06b9       60.7MB
docker.io/rancher/mirrored-coredns-coredns   1.12.1                 52546a367cc9e       76.1MB
docker.io/rancher/mirrored-library-busybox   1.36.1                 2d61ae04c2b80       4.51MB
docker.io/rancher/mirrored-library-traefik   3.3.6                  3a1e150bf4c56       225MB
docker.io/rancher/mirrored-metrics-server    v0.7.2                 48d9cfaaf3904       68.1MB
docker.io/rancher/mirrored-pause             3.6                    6270bb605e12e       686kB

2、安装karmada

1)、karmadactl安装
cd karmada/
#安装
chmod +x karmadact
cp karmadactl /usr/local/bin/

验证karmadactl安装

root@ubuntu:/home/k3s/images# karmadactl version
karmadactl version: version.Info{GitVersion:"v1.13.0", GitCommit:"ecc12b4ce8da8584c4c63d8ec81c6c944f4fb6b2", GitTreeState:"clean", BuildDate:"2025-02-28T11:14:15Z", GoVersion:"go1.22.12", Compiler:"gc", Platform:"linux/amd64"}
2)、导入镜像
k3s ctr -n k8s.io images import karmada-images-amd64.tar.gz
3)、安装
karmadactl init --crds crds.tar.gz --kubeconfig /etc/rancher/k3s/k3s.yaml --etcd-image coreos/etcd:v3.5.13 --karmada-aggregated-apiserver-image karmada/karmada-aggregated-apiserver:v1.13.0 --karmada-kube-controller-manager-image=kube-controller-manager:v1.29.2 --karmada-apiserver-image kube-apiserver:v1.29.2 --karmada-scheduler-image karmada/karmada-scheduler:v1.13.0 --karmada-webhook-image karmada/karmada-webhook:v1.13.0 --karmada-data=/etc/karmada --karmada-pki=/etc/karmada/pki

出现如下界面表示安装成功:

I0611 01:16:15.932986    5564 idempotency.go:296] Service karmada-system/karmada-webhook has been created or updated.------------------------------------------------------------------------------------------------------█████   ████   █████████   ███████████   ██████   ██████   █████████   ██████████     █████████
░░███   ███░   ███░░░░░███ ░░███░░░░░███ ░░██████ ██████   ███░░░░░███ ░░███░░░░███   ███░░░░░███░███  ███    ░███    ░███  ░███    ░███  ░███░█████░███  ░███    ░███  ░███   ░░███ ░███    ░███░███████     ░███████████  ░██████████   ░███░░███ ░███  ░███████████  ░███    ░███ ░███████████░███░░███    ░███░░░░░███  ░███░░░░░███  ░███ ░░░  ░███  ░███░░░░░███  ░███    ░███ ░███░░░░░███░███ ░░███   ░███    ░███  ░███    ░███  ░███      ░███  ░███    ░███  ░███    ███  ░███    ░████████ ░░████ █████   █████ █████   █████ █████     █████ █████   █████ ██████████   █████   █████
░░░░░   ░░░░ ░░░░░   ░░░░░ ░░░░░   ░░░░░ ░░░░░     ░░░░░ ░░░░░   ░░░░░ ░░░░░░░░░░   ░░░░░   ░░░░░
------------------------------------------------------------------------------------------------------
Karmada is installed successfully.Register Kubernetes cluster to Karmada control plane.Register cluster with 'Push' modeStep 1: Use "karmadactl join" command to register the cluster to Karmada control plane. --cluster-kubeconfig is kubeconfig of the member cluster.
(In karmada)~# MEMBER_CLUSTER_NAME=$(cat ~/.kube/config  | grep current-context | sed 's/: /\n/g'| sed '1d'| tr -d "\"'")
(In karmada)~# karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join ${MEMBER_CLUSTER_NAME} --cluster-kubeconfig=$HOME/.kube/configStep 2: Show members of karmada
(In karmada)~# kubectl --kubeconfig /etc/karmada/karmada-apiserver.config get clustersRegister cluster with 'Pull' modeStep 1: Create bootstrap token and generate the 'karmadactl register' command which will be used later.
~# karmadactl token create --print-register-command --kubeconfig=/etc/karmada/karmada-apiserver.config
This command will generate a registration command similar to:karmadactl register 172.18.0.5:5443 --token t8xfio.640u9gp9obc72v5d --discovery-token-ca-cert-hash sha256:9cfa542ff48f43793d1816b1dd0a78ad574e349d8f6e005e6e32e8ab528e4244Step 2: Use the output from Step 1 to register the cluster to the Karmada control plane. 
You need to specify the target member cluster by flag '--kubeconfig'
~# karmadactl register 172.18.0.5:5443 --token t8xfio.640u9gp9obc72v5d --discovery-token-ca-cert-hash sha256:9cfa542ff48f43793d1816b1dd0a78ad574e349d8f6e005e6e32e8ab528e4244 --kubeconfig=<path-to-member-cluster-kubeconfig>Step 3: Show members of Karmada.
~# karmadactl --kubeconfig=/etc/karmada/karmada-apiserver.config get clustersThe karmadactl register command has several optional parameters for setting the properties of the member cluster. For more details, run:~# karmadactl register --help
4)、卸载

若需要卸载karmada才执行以下操作:

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
kubectl config use-context defaultkarmadactl deinit
kubectl delete namespace karmada-system
rm -rf /var/lib/karmada-etcd

3、安装karmada的dashboard

export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
kubectl config use-context default
#安装 dashboard api和web。
cd /home/k3s/images/karmada/multi-cluster
kubectl apply -k nodeport-mode
#先删除旧的。失败不管
kubectl delete secret kubeconfig -n karmada-system
#创建密钥kubeconfig 
kubectl create secret generic kubeconfig --from-file=kubeconfig=/etc/karmada/karmada-apiserver.config -n karmada-system
#安装管理侧秘钥
export KUBECONFIG=/etc/karmada/karmada-apiserver.config
kubectl config use-context karmada-apiserver
cd /home/k3s/images/karmada/
#先清理,失败不管
kubectl delete -f dashboard/karmada-dashboard-sa.yaml
#安装凭证
kubectl apply -f dashboard/karmada-dashboard-sa.yaml
#获取token
kubectl -n karmada-system get secret/karmada-dashboard-secret -o go-template="{{.data.token | base64decode}}"

登录页面

#ip为虚拟机IP
http://192.168.134.132:32000

内容为 上一步获取的token。登录页面成功即完成。

4、karmada纳管k3s集群

使用pull模式。安装步骤如下:

export KUBECONFIG=/etc/karmada/karmada-apiserver.config
kubectl config use-context karmada-apiserver
#获取加入集群命令
karmadactl token create --print-register-command --kubeconfig=/etc/karmada/karmada-apiserver.config#在得到的命令后添加--kubeconfig=,例如:
karmadactl register 192.168.134.132:32443 --token cwcx0t.6gtwz1ge0ugzya3x --discovery-token-ca-cert-hash sha256:562734f87c27d2030c2a5ff16edfcf0a6d6f4dc9f9f060b05b092236c83d3714 --kubeconfig=/etc/rancher/k3s/k3s.yaml

查看加入的集群:

rot@ubuntu:/home/k3s/images/karmada# kubectl get clusters
NAME      VERSION        MODE   READY   AGE
default   v1.33.1+k3s1   Pull   True    56s

在页面中也能看见该集群。

至此k3s+karmada搭建完成。

http://www.xdnf.cn/news/13575.html

相关文章:

  • shell正则表达式
  • GFS分布式文件系统
  • 汽车电子行业的高效研发利器——全星研发项目管理APQP软件系统
  • 中国汽车启动电池市场深度剖析:现状、趋势与展望
  • Linux 查看两个主机之间时间是否同步 - clockdiff命令详解
  • 前端面试六之axios
  • 408考研逐题详解:2009年第38题
  • 【Kubernetes】架构与原理:核心概念、组件协同及容器化部署解析
  • 【考研数学:高数6】一元函数微分学的应用(二)——中值定理、微分等式和微分不等式
  • 鼠标右键添加新建某种文件的方法
  • Go并发模型与模式:context 上下文控制
  • 01.pycharm整合conda
  • 华为OD最新机试真题-对称美学-OD统一考试(B卷)
  • WinForm中实现Adobe PDF Reader实现旋转PDF功能
  • opencv vs2020正确的环境配置
  • 《HarmonyOSNext终极UIAbility手册:从启动模式到页面跳转,一网打尽!》
  • 菌菇食用攻略:从营养解析到安全指南,解锁科学食菌
  • 【JavaEE】-- HTTPS
  • 【Web】腾讯云 COS 静态网站部署与自定义域名 HTTPS 全流程
  • 【C++】来学习使用set和map吧
  • Python毕业设计226—基于python+爬虫+html的豆瓣影视数据可视化系统(源代码+数据库+万字论文)
  • 基于鸿蒙 HarmonyOS 5 打车小程序案例
  • 深入偏微分方程的世界-AI云计算
  • 金属工具制造企业如何做项目管理?数字化系统全面提升交付效率
  • 使用反汇编指令javap查看synchronized实现原理
  • Keepalived 与 Nginx 高可用部署方案详解
  • 【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
  • ROS move base 简易调试
  • 使用智能表格做项目工时管理
  • 软件开发和嵌入式开发岗位的面试题