k3s+kuboard+registry部署springboot项目

吴书松
吴书松
发布于 2026-05-20 / 14 阅读
0

k3s+kuboard+registry部署springboot项目

1、编写yml文件

这一步,可以让ai写

帮我写一个k8s的启动yml文件,启动下面springboot镜像,docker镜像地址:192.168.2.240:15000/wss-demo:v001

1、做好端口映射:容器内部端口:31012,外部端口31022

2、限制内存:256M,限制cpu 1核心

apiVersion: apps/v1
kind: Deployment
metadata:
  name: wss-demo-deployment
  labels:
    app: wss-demo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wss-demo
  template:
    metadata:
      labels:
        app: wss-demo
    spec:
      containers:
      - name: wss-demo
        image: 192.168.2.240:15000/wss-demo:v001
        ports:
        - containerPort: 31012   # 容器内部端口
          protocol: TCP
        resources:
          limits:
            cpu: "1"             # 限制 CPU 1 核心
            memory: "256Mi"      # 限制内存 256 MiB
          requests:
            cpu: "1"             # 请求 CPU 1 核心(保证资源)
            memory: "256Mi"      # 请求内存 256 MiB
        # 可选:添加就绪和存活探针,提升可靠性
        # readinessProbe:
        #   tcpSocket:
        #     port: 31012
        #   initialDelaySeconds: 10
        #   periodSeconds: 5
        # livenessProbe:
        #   tcpSocket:
        #     port: 31012
        #   initialDelaySeconds: 20
        #   periodSeconds: 10
      # 如果私有仓库需要认证,取消下面注释并提前创建 secret
      # imagePullSecrets:
      # - name: regsecret

---
apiVersion: v1
kind: Service
metadata:
  name: wss-demo-service
spec:
  type: NodePort                # 使用 NodePort 对外暴露端口
  selector:
    app: wss-demo               # 匹配 Deployment 中的 Pod 标签
  ports:
  - port: 31012                 # Service 内部端口(集群内访问用)
    targetPort: 31012           # 容器的目标端口
    nodePort: 31022             # 外部访问端口(节点端口)
    protocol: TCP

2、配置k3s

2.1、配置k3s允许http拉取镜像

master和agent都需要执行

1、配置文件

sudo mkdir -p /etc/rancher/k3s
sudo tee /etc/rancher/k3s/registries.yaml <<EOF
mirrors:
  192.168.2.240:15000:
    endpoint:
      - http://192.168.2.240:15000
configs:
  "192.168.2.240:15000":
    tls:
      insecure_skip_verify: true   # 可选,如果用 HTTP 其实不需要证书验证
    plainHTTP: true                 # 关键:允许使用 HTTP
EOF

2、重启k3s

2.2、默认 Kubernetes/容器运行时需要先启动一个“pause”容器来持有 Pod 的网络命名空间

pause镜像上传到registry,k3s从本地registry拉取pause镜像

# 拉取官方 pause 镜像
docker pull rancher/mirrored-pause:3.6

# 打标签并推送到您的私有仓库
docker tag rancher/mirrored-pause:3.6 192.168.2.240:15000/rancher/mirrored-pause:3.6
docker push 192.168.2.240:15000/rancher/mirrored-pause:3.6

修改k3s的启动文件

sudo mkdir -p /etc/systemd/system/k3s.service.d
cat <<EOF | sudo tee /etc/systemd/system/k3s.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/local/bin/k3s server \
    --pause-image=192.168.2.240:15000/rancher/mirrored-pause:3.6 \
    --selinux-enabled=false
EOF

sudo systemctl daemon-reload
sudo systemctl restart k3s

增加这一行

 --pause-image=192.168.2.240:15000/rancher/mirrored-pause:3.6
[Service]
ExecStart=
ExecStart=/usr/local/bin/k3s server \
    --kubelet-arg=cgroup-driver=systemd \
    --kubelet-arg=feature-gates=KubeletInUserNamespace=false \
    --pause-image=192.168.2.240:15000/rancher/mirrored-pause:3.6

如果是agent服务,执行下面配置(master也可以使用下面方式)

K3s agent 会同时读取环境文件和 /etc/rancher/k3s/config.yaml 配置文件。您只需创建配置文件,无需修改已有的 k3s-agent.service.env。

sudo mkdir -p /etc/rancher/k3s
sudo tee /etc/rancher/k3s/config.yaml <<EOF
pause-image: "192.168.2.240:15000/rancher/mirrored-pause:3.6"
EOF
sudo systemctl restart k3s-agent

3、配置kuboard,增加服务

3.1、从yaml创建服务,填入刚刚生成的yml内容

3.2、服务详情

3.3、访问服务

选择任一node节点访问即可