下载docker
export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
# 如您使用 curl
curl -fsSL https://raw.githubusercontent.com/docker/docker-install/master/install.sh | sh
# 如您使用 wget
wget -O- https://raw.githubusercontent.com/docker/docker-install/master/install.sh | sh
[root@k3s-master ~]# systemctl enable docker --now
[root@k3s-master ~]# docker info
Client: Docker Engine - Community
Version: 26.1.4
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.14.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.27.1
Path: /usr/libexec/docker/cli-plugins/docker-compose
Server:
Containers: 6
Running: 6
Paused: 0
Stopped: 0
Images: 4
Server Version: 26.1.4
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
Swarm: inactive
Runtimes: runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957
runc version: v1.1.12-0-g51d5e94
init version: de40ad0
Security Options:
seccomp
Profile: builtin
Kernel Version: 3.10.0-1160.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 972.3MiB
Name: k3s-master
ID: a6306f11-b431-4441-8c97-7e6f1fd0d547
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
下载离线包
# k3s安装脚本
wget https://rancher-mirror.rancher.cn/k3s/k3s-install.sh
# k3s二进制文件
wget https://rancher-mirror.rancher.cn/k3s/v1.30.2-k3s2/k3s-images.txt
wget https://rancher-mirror.rancher.cn/k3s/v1.30.2-k3s2/k3s
# k3s依赖的镜像
wget https://rancher-mirror.rancher.cn/k3s/v1.30.2-k3s2/k3s-airgap-images-amd64.tar.gz
注意:以上三个组件都可以通过K3s Release页面(github地址)下载,如果在国内使用,推荐从 国内地址 获得这些组件。
sudo docker load -i /root/k3s-airgap-images-amd64.tar
权限设置
sudo chmod a+x ./k3s ./k3s-install.sh
sudo cp ./k3s /usr/local/bin/
master上执行命令
设置环境变量
export INSTALL_K3S_EXEC="--docker --disable=traefik --kube-apiserver-arg service-node-port-range=0-65535 --write-kubeconfig ~/.kube/config --write-kubeconfig-mode 666"
--docker:指定使用 Docker 作为容器运行时。
--disable=traefik:禁用 ,Traefik 是 K3s 默认的 ingress controller(入口控制器)。
--kube-apiserver-arg service-node-port-range=0-65535:设置 Kubernetes API 服务器的服务节点端口范围为 0 到 65535,这可以增加可用的节点端口数量。
--write-kubeconfig ~/.kube/config:将 K3s 的配置文件写入到用户主目录下的.kube/config文件中,这样可以方便地使用kubectl等工具与 K3s 集群进行交互。
--write-kubeconfig-mode 666:设置写入的配置文件的权限模式为 666,这意味着该文件对于所有者、所属组和其他用户都具有读写权限。
INSTALL_K3S_SKIP_DOWNLOAD=true ./k3s-install.sh
将会安装
kubectl、crictl、ctr、k3s-killall.sh和k3s-uninstall.sh。

将kubeconfig文件写入到/etc/rancher/k3s/k3s.yaml,由 K3s 安装的 kubectl 将自动使用该文件
[root@k3s-master ~]# ll /etc/rancher/k3s/k3s.yaml
lrwxrwxrwx 1 root root 18 Aug 28 20:57 /etc/rancher/k3s/k3s.yaml -> /root/.kube/config
work节点上执行命令
设置K3S_URL参数会使 K3s 以 worker 模式运行。K3s agent 将在所提供的 URL 上向监听的 K3s 服务器注册。K3S_TOKEN使用的值存储在你的服务器节点上的/var/lib/rancher/k3s/server/node-token路径下。
**注意:**每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主机名,请传递K3S_NODE_NAME环境变量,并为每个节点提供一个有效且唯一的主机名。
INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_EXEC='--docker' K3S_URL=https://xxx:6443 K3S_TOKEN=token ./k3s-install.sh
