k3s集群安装

master节点安装

安装参数配置,如果不指定版本,则安装最新版

export INSTALL_K3S_VERSION=v1.22.13+k3s1
# 使用docker作为运行时容器
export INSTALL_K3S_EXEC="--docker"
# 使用阿里云镜像源安装
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | sh -
[root@master ~]# curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | sh -       [INFO]  Using v1.22.13+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.22.13+k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.22.13+k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Finding available k3s-selinux versions
[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 from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s

查看启动状态:

[root@master ~]# systemctl status k3s
● k3s.service - Lightweight Kubernetes
   Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: disabled)
   Active: active (running) since 六 2023-06-24 15:22:21 CST; 5min ago
     Docs: https://k3s.io
  Process: 27428 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
  Process: 27425 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
  Process: 27422 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exited, status=0/SUCCESS)
 Main PID: 27431 (k3s-server)
    Tasks: 132
   Memory: 1.1G
   CGroup: /system.slice/k3s.service
           ├─27431 /usr/local/bin/k3s server
           ├─27460 containerd
           ├─28499 /var/lib/rancher/k3s/data/8b526847b7c1f339a0878b18029f581027f82097c5128778df15dd816a058bda/bin/containerd-shim-runc-v2...
           ├─28579 /var/lib/rancher/k3s/data/8b526847b7c1f339a0878b18029f581027f82097c5128778df15dd816a058bda/bin/containerd-shim-runc-v2...
           ├─28599 /var/lib/rancher/k3s/data/8b526847b7c1f339a0878b18029f581027f82097c5128778df15dd816a058bda/bin/containerd-shim-runc-v2...
           ├─31162 /var/lib/rancher/k3s/data/8b526847b7c1f339a0878b18029f581027f82097c5128778df15dd816a058bda/bin/containerd-shim-runc-v2...
           └─31230 /var/lib/rancher/k3s/data/8b526847b7c1f339a0878b18029f581027f82097c5128778df15dd816a058bda/bin/containerd-shim-runc-v2...
......

查看节点信息:

[root@master ~]# kubectl get node
NAME     STATUS   ROLES                  AGE    VERSION
master   Ready    control-plane,master   6m2s   v1.22.13+k3s1

执行脚本之后会在文件夹 /usr/local/bin 生成以下文件:

[root@master ~]# ls /usr/local/bin
crictl  k3s  k3s-killall.sh  k3s-uninstall.sh  kubectl

slave节点安装

先在master查看token

[root@master ~]# cat /var/lib/rancher/k3s/server/node-token
K10523c2cdab5b4976be8887aaa5cd41a4e4cb148defe513228b08d97fd79d9131a::server:ca92b29bfe826d07162d8e0d693723c1
# master URL设置
export K3S_URL=https://192.168.43.180:6443
# master生成的token
export K3S_TOKEN=K10523c2cdab5b4976be8887aaa5cd41a4e4cb148defe513228b08d97fd79d9131a::server:ca92b29bfe826d07162d8e0d693723c1
# 版本
export INSTALL_K3S_VERSION=v1.22.13+k3s1
# 使用docker作为运行时容器
export INSTALL_K3S_EXEC="--docker"
# 使用阿里云镜像源安装
curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | sh -

slave2跟slave1一样的步骤

[root@slave2 ~]# curl -sfL https://rancher-mirror.oss-cn-beijing.aliyuncs.com/k3s/k3s-install.sh | sh -
[INFO]  Using v1.22.13+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.22.13+k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.22.13+k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Finding available k3s-selinux versions
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s-agent.service to /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent

在 master 节点上查看节点信息:

[root@master ~]# kubectl get node
NAME     STATUS   ROLES                  AGE    VERSION
master   Ready    control-plane,master   39m    v1.22.13+k3s1
slave1   Ready    <none>                 3m5s   v1.22.13+k3s1
slave2   Ready    <none>                 106s   v1.22.13+k3s1

查看生成的文件:

[root@slave1 ~]# ls /usr/local/bin
crictl  ctr  k3s  k3s-agent-uninstall.sh  k3s-killall.sh  kubectl

[root@slave2 ~]# ls /usr/local/bin
crictl  ctr  k3s  k3s-agent-uninstall.sh  k3s-killall.sh  kubectl

测试k3s是否安装成功

查看 k3s 安装之后容器内存在的pod:

[root@master ~]# kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   coredns-7796b77cd4-t45lt                  1/1     Running     0          40m
kube-system   local-path-provisioner-84bb864455-4lh8z   1/1     Running     0          40m
kube-system   metrics-server-ff9dbcb6c-7fss5            1/1     Running     0          40m
kube-system   helm-install-traefik-crd-bwpxs            0/1     Completed   0          40m
kube-system   helm-install-traefik-knf6n                0/1     Completed   2          40m
kube-system   svclb-traefik-mg9f4                       2/2     Running     0          37m
kube-system   traefik-d497b4cb6-8w7d2                   1/1     Running     0          37m
kube-system   svclb-traefik-qdfzg                       2/2     Running     0          4m18s
kube-system   svclb-traefik-klx4f                       2/2     Running     0          2m59s

pod 的状态为 Running 和 Completed 说明安装成功。

如果出现问题请使用下面的命令查看具体的错误信息:

查看pod详情

kubectl describe pod PodName

查看 pod log

kubectl logs PodName

验证k3s环境,在 k3s 集群中创建一个 pod,验证是否正常运行。

创建一个nginx镜像

[root@master ~]# kubectl create deployment nginx --image=nginx
deployment.apps/nginx created

设置对外暴露端口

[root@master ~]# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed
[root@master ~]# kubectl get pods,svc -o wide
NAME                         READY   STATUS    RESTARTS   AGE     IP          NODE     NOMINATED NODE   READINESS GATES
pod/nginx-6799fc88d8-c92v4   1/1     Running   0          2m25s   10.42.1.3   slave1   <none>           <none>

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE    SELECTOR
service/kubernetes   ClusterIP   10.43.0.1       <none>        443/TCP        54m    <none>
service/nginx        NodePort    10.43.219.172   <none>        80:32426/TCP   2m8s   app=nginx

slave1上查看镜像

[root@slave1 ~]# ctr images list | grep nginx
docker.io/library/nginx:latest                                                                           application/vnd.docker.distribution.manifest.list.v2+json sha256:593dac25b7733ffb7afe1a72649a43e574778bf025ad60514ef40f6b5d606247 67.3 MiB  linux/386,linux/amd64,linux/arm/v5,linux/arm/v7,linux/arm64/v8,linux/mips64le,linux/ppc64le,linux/s390x io.cri-containerd.image=managed
docker.io/library/nginx@sha256:593dac25b7733ffb7afe1a72649a43e574778bf025ad60514ef40f6b5d606247          application/vnd.docker.distribution.manifest.list.v2+json sha256:593dac25b7733ffb7afe1a72649a43e574778bf025ad60514ef40f6b5d606247 67.3 MiB  linux/386,linux/amd64,linux/arm/v5,linux/arm/v7,linux/arm64/v8,linux/mips64le,linux/ppc64le,linux/s390x io.cri-containerd.image=managed

发送curl请求

[root@master ~]# curl http://192.168.43.180:32426/
[root@master ~]# curl http://192.168.43.181:32426/
[root@master ~]# curl http://192.168.43.182:32426/
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

卸载 K3s

如果你使用 install.sh 脚本安装了 k3s,那么在安装过程中会生成一个卸载脚本。该脚本在您的节点上的

/usr/local/bin/ 目录下:

[root@master ~]# ls /usr/local/bin/
crictl  k3s  k3s-killall.sh  k3s-uninstall.sh  kubectl

[root@slave1 ~]# ls /usr/local/bin/
crictl  ctr  k3s  k3s-agent-uninstall.sh  k3s-killall.sh  kubectl

[root@slave2 ~]# ls /usr/local/bin/
crictl  ctr  k3s  k3s-agent-uninstall.sh  k3s-killall.sh  kubectl

卸载master节点

./k3s-uninstall.sh

卸载slave节点

./k3s-agent-uninstall.sh
posted @   朝阳1  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示