Kubernetes部署Kanboard看板管理平台

【云原生】Kubernetes部署Kanboard项目管理平台

文章目录

介绍

  • Kanboard是一个简介而强大的任务看板管理系统,它以敏捷开发理念为基础,皆在帮助个人和团队提高工作效率、优化工作流程。通过其直观的界面和灵活的配置选项,用户可以轻松地进行项目管理、任务分配、并跟踪进度

资源列表

操作系统 配置 主机名 IP k8s版本
CentOS 7.9 2C4G k8s-master 192.168.93.101 v1.18.0
CentOS 7.9 2C4G k8s-node01 192.168.93.102 v1.18.0
CentOS 7.9 2C4G k8s-node02 192.168.93.103 v1.18.0

基础环境

  • 关闭防火墙
bash 复制代码
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制

    setenforce 0
    sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config

一、检查k8s环境

  • 提前部署一个k8s集群,采用kubeadm或二进制安装都可以

1.1、检查工作节点状态

复制代码
[root@k8s-master ~]# kubectl get node
NAME         STATUS   ROLES    AGE    VERSION
k8s-master   Ready    master   158m   v1.18.0
k8s-node01   Ready    <none>   157m   v1.18.0
k8s-node02   Ready    <none>   157m   v1.18.0

1.2、检查系统pod状态

  • 检查k8s集群中各系统组件的pod状态,确保都处于正常状态

    [root@k8s-master ~]# kubectl get pod -n kube-system
    NAME READY STATUS RESTARTS AGE
    calico-kube-controllers-858fbfbc9-l8tpp 1/1 Running 1 157m
    calico-node-k6qbl 1/1 Running 1 157m
    calico-node-q969p 1/1 Running 1 157m
    calico-node-sv48g 1/1 Running 1 157m
    coredns-7ff77c879f-lnl72 1/1 Running 1 158m
    coredns-7ff77c879f-nfx7g 1/1 Running 1 158m
    etcd-k8s-master 1/1 Running 1 159m
    kube-apiserver-k8s-master 1/1 Running 1 159m
    kube-controller-manager-k8s-master 1/1 Running 1 159m
    kube-proxy-2c282 1/1 Running 1 158m
    kube-proxy-6n6pn 1/1 Running 1 158m
    kube-proxy-zhm2m 1/1 Running 1 158m
    kube-scheduler-k8s-master 1/1 Running 1 159m

二、编辑kanboard.yaml文件

  • yaml文件直接复制粘贴即可

2.1、创建项目目录

复制代码
[root@k8s-master ~]# mkdir -p /data/kanboard
[root@k8s-master ~]# cd /data/kanboard/

2.2、编辑kanboard.yaml文件

  • 执行以下命令之前可以选择先导入需要的镜像,手动进行拉取,不然如果镜像拉去不下来的话,pod就会运行不起来,镜像拉取不下来的可以私信或者评论(开源)

    [root@k8s-master kanboard]# vim kanboard.yaml

    apiVersion: v1
    kind: Namespace
    metadata:
    name: kanboard

    apiVersion: apps/v1
    kind: Deployment
    metadata:
    labels:
    app: kanboard
    name: kanboard
    namespace: kanboard
    spec:
    replicas: 2
    selector:
    matchLabels:
    app: kanboard
    template:
    metadata:
    labels:
    app: kanboard
    spec:
    volumes:
    - name: data
    hostPath:
    path: /data/kanboard/data/
    - name: plugins
    hostPath:
    path: /data/kanboard/plugins/
    - name: ssl
    hostPath:
    path: /data/kanboard/ssl/

    initContainers:

    - name: volume-permissions

    image: busybox:1.28

    imagePullPolicy: IfNotPresent

    command:

    - sh

    - -c

    - chmod 777 /data/kanboard/data/

    volumeMounts:

    - name: web

    mountPath: /data/kanboard/data/

    复制代码
        containers: 
        - image:   kanboard/kanboard:v1.2.26
          name: my-kanboard
          ports:
          - name:  web 
            protocol: "TCP"
            containerPort: 80
          - name:  ssl
            protocol: "TCP"
            containerPort: 443
    
    
          env:
          - name: TZ
            value: "Asia/Shanghai"
         
    
    
          resources:         
           requests:
               cpu: 0.1
               memory: 0.1G
           limits:
               cpu: 1
               memory:  0.5G
          volumeMounts:
          - name: data
            mountPath: /var/www/html
          - name: plugins
            mountPath: var/www/app/plugins
          - name: ssl
            mountPath: /etc/nginx/ssl

    apiVersion: v1
    kind: Service
    metadata:
    name: my-kanboard
    namespace: kanboard
    spec:
    ports:
    - name: web
    protocol: TCP
    targetPort: 80
    port: 80
    nodePort: 30080
    - name: ssl
    protocol: TCP
    targetPort: 443
    port: 443
    nodePort: 30090

    复制代码
    selector:
        app: kanboard
    type: NodePort 

三、部署Kanboard

3.1、部署Kanboard服务

  • 应用kanboard.yaml文件

    [root@k8s-master kanboard]# kubectl apply -f kanboard.yaml
    namespace/kanboard created
    deployment.apps/kanboard created
    service/my-kanboard created

3.2、检查pod状态

复制代码
# 查看pod的详细信息
[root@k8s-master kanboard]# kubectl get pod -n kanboard -owide
NAME                        READY   STATUS    RESTARTS   AGE   IP              NODE         NOMINATED NODE   READINESS GATES
kanboard-7f447d6bd6-446rz   1/1     Running   0          32s   10.244.85.195   k8s-node01   <none>           <none>
kanboard-7f447d6bd6-xtmbl   1/1     Running   0          32s   10.244.58.195   k8s-node02   <none>           <none>

3.3、检查pod详细信息

  • 查看kanboard的pod详细信息

    [root@k8s-master kanboard]# kubectl describe pod -n kanboard kanboard-7f447d6bd6-446rz
    Name: kanboard-7f447d6bd6-446rz
    Namespace: kanboard
    Priority: 0
    Node: k8s-node01/192.168.93.102
    Start Time: Wed, 19 Jun 2024 12:13:11 +0800
    Labels: app=kanboard
    pod-template-hash=7f447d6bd6
    Annotations: cni.projectcalico.org/containerID: c3055ba62412aa10b5c1bbffa6ad3b54baeb0955d5e81ccbd020e907d395a537
    cni.projectcalico.org/podIP: 10.244.85.195/32
    cni.projectcalico.org/podIPs: 10.244.85.195/32
    Status: Running
    IP: 10.244.85.195
    IPs:
    IP: 10.244.85.195
    Controlled By: ReplicaSet/kanboard-7f447d6bd6
    Containers:
    my-kanboard:
    Container ID: docker://cb1b17cbd2e1d9db22b23354527f75f7af4534590adac88bb1b85b34271ee3e5
    Image: kanboard/kanboard:v1.2.26
    Image ID: docker://sha256:b33bb3dd71a619eb938f5592ec2096250187ad8edde0e5fbe34c8bd3f727b994
    Ports: 80/TCP, 443/TCP
    Host Ports: 0/TCP, 0/TCP
    State: Running
    Started: Wed, 19 Jun 2024 12:13:12 +0800
    Ready: True
    Restart Count: 0
    Limits:
    cpu: 1
    memory: 500M
    Requests:
    cpu: 100m
    memory: 100M
    Environment:
    TZ: Asia/Shanghai
    Mounts:
    /etc/nginx/ssl from ssl (rw)
    /var/run/secrets/kubernetes.io/serviceaccount from default-token-7k9kj (ro)
    /var/www/html from data (rw)
    var/www/app/plugins from plugins (rw)
    Conditions:
    Type Status
    Initialized True
    Ready True
    ContainersReady True
    PodScheduled True
    Volumes:
    data:
    Type: HostPath (bare host directory volume)
    Path: /data/kanboard/data/
    HostPathType:
    plugins:
    Type: HostPath (bare host directory volume)
    Path: /data/kanboard/plugins/
    HostPathType:
    ssl:
    Type: HostPath (bare host directory volume)
    Path: /data/kanboard/ssl/
    HostPathType:
    default-token-7k9kj:
    Type: Secret (a volume populated by a Secret)
    SecretName: default-token-7k9kj
    Optional: false
    QoS Class: Burstable
    Node-Selectors: <none>
    Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
    node.kubernetes.io/unreachable:NoExecute for 300s
    Events:
    Type Reason Age From Message
    ---- ------ ---- ---- -------
    Normal Scheduled 79s default-scheduler Successfully assigned kanboard/kanboard-7f447d6bd6-446rz to k8s-node01
    Normal Pulled 78s kubelet, k8s-node01 Container image "kanboard/kanboard:v1.2.26" already present on machine
    Normal Created 78s kubelet, k8s-node01 Created container my-kanboard
    Normal Started 78s kubelet, k8s-node01 Started container my-kanboard

3.4、查看service状态

  • 检查service状态。kanboard的外部访问端口为30080和30090

    servcie简称svc

    [root@k8s-master kanboard]# kubectl get svc -n kanboard
    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    my-kanboard NodePort 10.109.78.136 <none> 80:30080/TCP,443:30090/TCP 2m59s

四、访问Kanboard平台

相关推荐
默 语2 分钟前
首个企业级 OpenClaw 部署管理方案开源了
开源
涛声依旧393164 分钟前
构建部署kubernetes所需主机
linux·运维·云原生·容器·kubernetes
槐序深巷里打雨伞的人36 分钟前
k8s中部署prometheus并监控k8s集群以及nginx案例
nginx·kubernetes·prometheus
阿里云云原生41 分钟前
模型调用总闸门再次被投毒
云原生
eRTE XFUN1 小时前
Redis 设置密码(配置文件、docker容器、命令行3种场景)
数据库·redis·docker
万象.2 小时前
Docker网络原理
网络·docker·容器
春日见2 小时前
从底层思维3分钟彻底弄清卷积神经网络CNN
人工智能·深度学习·神经网络·计算机视觉·docker·cnn·计算机外设
阿里云云原生2 小时前
Harness 驾驭工程是 AI 平权的必经之路?
云原生
wudl55662 小时前
MySQL 8.0.42 Docker 开发部署手册
数据库·mysql·docker