云原生Kubernetes: K8S 1.29版本 部署Kuboard

目录

一、实验

1.环境

2.K8S 1.29版本 部署Kuboard (第一种方式)

3.K8S 1.29版本 部署Kuboard (第二种方式)

4.K8S 1.29版本 使用Kuboard

二、问题

1.docker如何在node节点间移动镜像


一、实验

1.环境

(1)主机

表1 主机

主机架构版本IP备注
masterK8S master节点1.29.0192.168.204.8

node1K8S node节点1.29.0192.168.204.9
node2K8S node节点1.29.0192.168.204.10

(2)master节点查看集群

1)查看node
kubectl get node2)查看node详细信息
kubectl get node -o wide

2.K8S 1.29版本 部署Kuboard (第一种方式)

(1)查阅

1)官网
https://kuboard.cn/2)安装说明
https://kuboard.cn/install/v3/install.html

(2)下载 yaml 文件

1)第一种方式
wget https://addons.kuboard.cn/kuboard/kuboard-v3.yaml2)第二种方式
#华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
wget https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

这里采用第1种方式

(3)node2节点拉取kuboard镜像

[root@node2 ~]# docker pull eipwork/kuboard:v3

查看镜像

[root@node2 ~]# docker images

(4)node2节点拉取etcd-host镜像

[root@node2 ~]# docker pull eipwork/etcd-host:3.4.16-2

查看镜像

[root@node2 ~]# docker images

(5)导出Docker镜像

[root@node2 ~]# docker save -o etcd-host.tar eipwork/etcd-host:3.4.16-2[root@node2 ~]# docker save -o kuboard.tar eipwork/kuboard:v3

(6)复制Docker镜像到node1节点

[root@node2 ~]# scp etcd-host.tar root@node1:~[root@node2 ~]# scp kuboard.tar root@node1:~

(7)node1节点导入Docker镜像

[root@node1 ~]# docker load -i etcd-host.ta[root@node1 ~]# docker load -i kuboard.tar

查看镜像

[root@node1 ~]# docker images

(8)修改镜像拉取策略

修改前:

修改后:

(9)master节点生成资源

[root@master ~]# kubectl apply -f kuboard-v3.yaml 

(4)观察pod与删除pod

注意kuboard-v3如果Ready一直为0/1,需要修改配置文件(具体可以参考后面的第二种方式)。

[root@master ~]# kubectl get pods -n kuboard -o wide -w

删除

[root@master ~]kubectl delete -f kuboard-v3.yaml

3.K8S 1.29版本 部署Kuboard (第二种方式)

(1)查阅

1)官网
https://kuboard.cn/2)安装说明
https://kuboard.cn/install/v3/install.html

(2)下载 yaml 文件

1)第一种方式
wget https://addons.kuboard.cn/kuboard/kuboard-v3.yaml2)第二种方式
#华为云的镜像仓库替代 docker hub 分发 Kuboard 所需要的镜像
wget https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml

这里采用第二种方式

(3)node2节点拉取镜像

[root@node2 ~]# docker pull eipwork/kuboard:v3

[root@node2 ~]# docker pull swr.cn-east-2.myhuaweicloud.com/kuboard/etcd-host:3.4.16-2

查看镜像

[root@node2 ~]# docker images

[root@node2 ~]# docker images | grep myhuaweicloud

(5)导出Docker镜像

[root@node2 ~]# docker save -o etcd-host.tar swr.cn-east-2.myhuaweicloud.com/kuboard/etcd-host:3.4.16-2[root@node2 ~]# docker save -o kuboard.tar swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3

(6)复制Docker镜像到node1节点

[root@node2 ~]# scp etcd-host.tar root@node1:~[root@node2 ~]# scp kuboard.tar root@node1:~

(7)node1节点导入Docker镜像

[root@node1 ~]# docker load -i etcd-host.tar[root@node1 ~]# docker load -i kuboard.tar

查看镜像

[root@node1 ~]# docker images

(8)修改镜像拉取策略

修改前:

修改后:

(9)master节点生成资源

[root@master ~]# kubectl apply -f kuboard-v3-swr.yaml

(4)观察pod

[root@master ~]#  kubectl get pods -n kuboard -o wide -w

(5)查看日志

[root@master ~]# kubectl logs -f kuboard-v3-6fdbd869b7-5g8lv -n kuboard
生成 KUBOARD_SSO_CLIENT_SECRET: 76425626219e02eb20931235
设置 KuboardAdmin 的默认密码(仅第一次启动时设置) Kuboard123
KUBOARD_ENDPOINT http://192.168.204.10:30080
eyJhbGciOiJSUzI1NiIsImtpZCI6IlVIUE9lVzRIYXpKTWxGLVRuQVJGSzJVVzQyTGdpMjdleW52RTdoOHM3bTAifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzQ0OTQzMzc2LCJpYXQiOjE3MTM0MDczNzYsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJvYXJkIiwicG9kIjp7Im5hbWUiOiJrdWJvYXJkLXYzLTZmZGJkODY5YjctNWc4bHYiLCJ1aWQiOiI3ZTFhMTNlZS1mZjQ1LTQ1ZjctYjBhZS05OTA4NjE5ZmRlNzAifSwic2VydmljZWFjY291bnQiOnsibmFtZSI6Imt1Ym9hcmQtYm9vc3RyYXAiLCJ1aWQiOiI0MTRhNDI1Ni0zMDFhLTQ0Y2YtYmY0ZC00ZjgzMGQwZWQ5Y2EifSwid2FybmFmdGVyIjoxNzEzNDEwOTgzfSwibmJmIjoxNzEzNDA3Mzc2LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3Vib2FyZDprdWJvYXJkLWJvb3N0cmFwIn0.PmcgfI18gRbNl8xFIYz8xHVfaPlZJxlmNSddRHVlWpCGXD6-lw_9jj-6nD0ANfNnbY5PEM4PzR187xjIBTNcTt6jZMwwto4wifvzHHoMEdfNFPO-1EmDEl_rJS4tJaaaKHMRGuz4Prok28giK_MSPf8ceMARh4ZXhFt2xwMRbY5hgNz1z1YLZl_mQdl4cPe-BK_eH4nZZOHIntuOVXRRFr8E36jyC86IlsothCa65tGHm5_NplZdCG7cz-kJMnNY4r7-ew_FMUPKXqVMMyBgPsIWNQRnrvxHRPs8Drik88t4xmNMg2oWD0qjP6-DHJhzqq3Bnx88EfQ-hUf9a7NHKA% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100   113  100   113    0     0   7253      0 --:--:-- --:--:-- --:--:--  7533% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100   113  100   113    0     0   7475      0 --:--:-- --:--:-- --:--:--  7533
[{"kind": "NodeList","apiVersion": "v1","metadata": {"resourceVersion": "15695"},"items": []
},{"kind": "NodeList","apiVersion": "v1","metadata": {"resourceVersion": "15695"},"items": []
}]start kuboard-agent-server
当前 Kuboard 在 K8S 中运行,etcd 独立部署
启动内置的 QuestDB___                  _   ____  ____/ _ \ _   _  ___  ___| |_|  _ \| __ )
| | | | | | |/ _ \/ __| __| | | |  _ \
| |_| | |_| |  __/\__ \ |_| |_| | |_) |\__\_\\__,_|\___||___/\__|____/|____/www.questdb.io/questdb/bin/questdb.sh: line 66: ps: command not found
JAVA: /questdb/bin/java
QuestDB server 6.0.4
Copyright (C) 2014-2024, all rights reserved.认证模块:使用本地用户库
启动 kuboard-sso
设置日志级别为 info
time="2024-04-18T02:34:22Z" level=info msg="config using log level: info"
time="2024-04-18T02:34:22Z" level=info msg="config issuer: http://192.168.204.10:30080/sso"
time="2024-04-18T02:34:22Z" level=info msg="config storage: etcd"
time="2024-04-18T02:34:22Z" level=info msg="config static client: KuboardApp"
time="2024-04-18T02:34:22Z" level=info msg="config connector: default"
time="2024-04-18T02:34:22Z" level=info msg="config skipping approval screen"
time="2024-04-18T02:34:22Z" level=info msg="config signing keys expire after: 6h0m0s"
time="2024-04-18T02:34:22Z" level=info msg="config id tokens valid for: 168h0m0s"
time="2024-04-18T02:34:22Z" level=info msg="config device requests valid for: 5m0s"
设置日志级别为 info
[LOG] 2024/04/18 - 10:34:25.917   | /common/etcd.client_config                                    24 |  info | KUBOARD_ETCD_ENDPOINTS=[]
[LOG] 2024/04/18 - 10:34:25.917   | /common/etcd.client_config                                    52 |  info | {[] 0s 1s 0s 0s 0 0 <nil>   false [] <nil> <nil> <nil> false}
[LOG] 2024/04/18 - 10:34:25.918   | /initializekuboard.InitializeEtcd                             39 |  info | 初始化 ./init-etcd-scripts/audit-policy-once.yaml
{"level":"warn","ts":"2024-04-18T10:34:27.818+0800","caller":"clientv3/retry_interceptor.go:61","msg":"retrying of unary invoker failed","target":"endpoint://client-50d42282-d986-40b3-9355-434ead47ba3d/","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: all SubConns are in TransientFailure, latest connection error: connection error: desc = \"transport: Error while dialing dial tcp: missing address\""}
failed to initialize server: server: failed to list connector objects from storage: context deadline exceeded
^C

重点是最后的报错

(6)编辑配置文件

[root@master ~]# kubectl edit cm kuboard-v3-config -n kuboard

查看:

(7)搜索此配置项,将此配置项替换

替换前:

KUBOARD_SERVER_NODE_PORT: '30080'

替换后:(k8s节点的任意IP)

KUBOARD_ENDPOINT: 'http://192.168.204.10:30080'

(8)删除之前的 pod 让它自己拉起来

[root@master ~]# kubectl delete pod kuboard-v3-6fdbd869b7-5g8lv -n kuboard

(9)查看pod

[root@master ~]#  kubectl get pods -n kuboard

详细信息

[root@master ~]# kubectl get pods -n kuboard -o wide

(10) 查看日志

[root@master ~]# kubectl logs -f kuboard-v3-6fdbd869b7-7xh4t -n kuboard
生成 KUBOARD_SSO_CLIENT_SECRET: 09003557b425f87463067e35
设置 KuboardAdmin 的默认密码(仅第一次启动时设置) Kuboard123
start kuboard-agent-server
启动内置的 QuestDB___                  _   ____  ____/ _ \ _   _  ___  ___| |_|  _ \| __ )
| | | | | | |/ _ \/ __| __| | | |  _ \
| |_| | |_| |  __/\__ \ |_| |_| | |_) |\__\_\\__,_|\___||___/\__|____/|____/www.questdb.io/questdb/bin/questdb.sh: line 66: ps: command not found
JAVA: /questdb/bin/java
{"level":"info","ts":"2024-04-18T10:38:50.230+0800","caller":"embed/etcd.go:117","msg":"configuring peer listeners","listen-peer-urls":["http://0.0.0.0:2380"]}
{"level":"info","ts":"2024-04-18T10:38:50.230+0800","caller":"embed/etcd.go:127","msg":"configuring client listeners","listen-client-urls":["http://0.0.0.0:2379"]}
{"level":"info","ts":"2024-04-18T10:38:50.231+0800","caller":"embed/etcd.go:302","msg":"starting an etcd server","etcd-version":"3.4.14","git-sha":"8a03d2e96","go-version":"go1.12.17","go-os":"linux","go-arch":"amd64","max-cpu-set":4,"max-cpu-available":4,"member-initialized":false,"name":"kuboard-01","data-dir":"/data/etcd-data","wal-dir":"","wal-dir-dedicated":"","member-dir":"/data/etcd-data/member","force-new-cluster":false,"heartbeat-interval":"100ms","election-timeout":"1s","initial-election-tick-advance":true,"snapshot-count":10000,"snapshot-catchup-entries":5000,"initial-advertise-peer-urls":["http://0.0.0.0:2380"],"listen-peer-urls":["http://0.0.0.0:2380"],"advertise-client-urls":["http://0.0.0.0:2379"],"listen-client-urls":["http://0.0.0.0:2379"],"listen-metrics-urls":[],"cors":["*"],"host-whitelist":["*"],"initial-cluster":"kuboard-01=http://0.0.0.0:2380","initial-cluster-state":"new","initial-cluster-token":"tkn","quota-size-bytes":2147483648,"pre-vote":false,"initial-corrupt-check":false,"corrupt-check-time-interval":"0s","auto-compaction-mode":"periodic","auto-compaction-retention":"0s","auto-compaction-interval":"0s","discovery-url":"","discovery-proxy":""}
{"level":"info","ts":"2024-04-18T10:38:50.233+0800","caller":"etcdserver/backend.go:80","msg":"opened backend db","path":"/data/etcd-data/member/snap/db","took":"1.203708ms"}
{"level":"info","ts":"2024-04-18T10:38:50.237+0800","caller":"etcdserver/raft.go:486","msg":"starting local member","local-member-id":"59a9c584ea2c3f35","cluster-id":"f9f44c4ba0e96dd8"}
{"level":"info","ts":"2024-04-18T10:38:50.237+0800","caller":"raft/raft.go:1530","msg":"59a9c584ea2c3f35 switched to configuration voters=()"}
{"level":"info","ts":"2024-04-18T10:38:50.238+0800","caller":"raft/raft.go:700","msg":"59a9c584ea2c3f35 became follower at term 0"}
{"level":"info","ts":"2024-04-18T10:38:50.238+0800","caller":"raft/raft.go:383","msg":"newRaft 59a9c584ea2c3f35 [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]"}
{"level":"info","ts":"2024-04-18T10:38:50.238+0800","caller":"raft/raft.go:700","msg":"59a9c584ea2c3f35 became follower at term 1"}
{"level":"info","ts":"2024-04-18T10:38:50.238+0800","caller":"raft/raft.go:1530","msg":"59a9c584ea2c3f35 switched to configuration voters=(6460912315094810421)"}
{"level":"warn","ts":"2024-04-18T10:38:50.253+0800","caller":"auth/store.go:1366","msg":"simple token is not cryptographically signed"}
{"level":"info","ts":"2024-04-18T10:38:50.258+0800","caller":"etcdserver/quota.go:98","msg":"enabled backend quota with default value","quota-name":"v3-applier","quota-size-bytes":2147483648,"quota-size":"2.1 GB"}
{"level":"info","ts":"2024-04-18T10:38:50.259+0800","caller":"etcdserver/server.go:803","msg":"starting etcd server","local-member-id":"59a9c584ea2c3f35","local-server-version":"3.4.14","cluster-version":"to_be_decided"}
{"level":"info","ts":"2024-04-18T10:38:50.260+0800","caller":"etcdserver/server.go:669","msg":"started as single-node; fast-forwarding election ticks","local-member-id":"59a9c584ea2c3f35","forward-ticks":9,"forward-duration":"900ms","election-ticks":10,"election-timeout":"1s"}
{"level":"info","ts":"2024-04-18T10:38:50.261+0800","caller":"raft/raft.go:1530","msg":"59a9c584ea2c3f35 switched to configuration voters=(6460912315094810421)"}
{"level":"info","ts":"2024-04-18T10:38:50.261+0800","caller":"membership/cluster.go:392","msg":"added member","cluster-id":"f9f44c4ba0e96dd8","local-member-id":"59a9c584ea2c3f35","added-peer-id":"59a9c584ea2c3f35","added-peer-peer-urls":["http://0.0.0.0:2380"]}
{"level":"info","ts":"2024-04-18T10:38:50.263+0800","caller":"embed/etcd.go:244","msg":"now serving peer/client/metrics","local-member-id":"59a9c584ea2c3f35","initial-advertise-peer-urls":["http://0.0.0.0:2380"],"listen-peer-urls":["http://0.0.0.0:2380"],"advertise-client-urls":["http://0.0.0.0:2379"],"listen-client-urls":["http://0.0.0.0:2379"],"listen-metrics-urls":[]}
{"level":"info","ts":"2024-04-18T10:38:50.263+0800","caller":"embed/etcd.go:579","msg":"serving peer traffic","address":"[::]:2380"}
QuestDB server 6.0.4
Copyright (C) 2014-2024, all rights reserved.{"level":"info","ts":"2024-04-18T10:38:50.738+0800","caller":"raft/raft.go:923","msg":"59a9c584ea2c3f35 is starting a new election at term 1"}
{"level":"info","ts":"2024-04-18T10:38:50.738+0800","caller":"raft/raft.go:713","msg":"59a9c584ea2c3f35 became candidate at term 2"}
{"level":"info","ts":"2024-04-18T10:38:50.738+0800","caller":"raft/raft.go:824","msg":"59a9c584ea2c3f35 received MsgVoteResp from 59a9c584ea2c3f35 at term 2"}
{"level":"info","ts":"2024-04-18T10:38:50.738+0800","caller":"raft/raft.go:765","msg":"59a9c584ea2c3f35 became leader at term 2"}
{"level":"info","ts":"2024-04-18T10:38:50.738+0800","caller":"raft/node.go:325","msg":"raft.node: 59a9c584ea2c3f35 elected leader 59a9c584ea2c3f35 at term 2"}
{"level":"info","ts":"2024-04-18T10:38:50.739+0800","caller":"etcdserver/server.go:2528","msg":"setting up initial cluster version","cluster-version":"3.4"}
{"level":"info","ts":"2024-04-18T10:38:50.740+0800","caller":"membership/cluster.go:558","msg":"set initial cluster version","cluster-id":"f9f44c4ba0e96dd8","local-member-id":"59a9c584ea2c3f35","cluster-version":"3.4"}
{"level":"info","ts":"2024-04-18T10:38:50.740+0800","caller":"api/capability.go:76","msg":"enabled capabilities for version","cluster-version":"3.4"}
{"level":"info","ts":"2024-04-18T10:38:50.740+0800","caller":"etcdserver/server.go:2560","msg":"cluster version is updated","cluster-version":"3.4"}
{"level":"info","ts":"2024-04-18T10:38:50.740+0800","caller":"etcdserver/server.go:2037","msg":"published local member to cluster through raft","local-member-id":"59a9c584ea2c3f35","local-member-attributes":"{Name:kuboard-01 ClientURLs:[http://0.0.0.0:2379]}","request-path":"/0/members/59a9c584ea2c3f35/attributes","cluster-id":"f9f44c4ba0e96dd8","publish-timeout":"7s"}
{"level":"info","ts":"2024-04-18T10:38:50.741+0800","caller":"embed/serve.go:139","msg":"serving client traffic insecurely; this is strongly discouraged!","address":"[::]:2379"}
认证模块:使用本地用户库
启动 kuboard-sso
设置日志级别为 info
time="2024-04-18T02:39:05Z" level=info msg="config using log level: info"
time="2024-04-18T02:39:05Z" level=info msg="config issuer: http://192.168.204.10:30080/sso"
time="2024-04-18T02:39:05Z" level=info msg="config storage: etcd"
time="2024-04-18T02:39:05Z" level=info msg="config static client: KuboardApp"
time="2024-04-18T02:39:05Z" level=info msg="config connector: default"
time="2024-04-18T02:39:05Z" level=info msg="config skipping approval screen"
time="2024-04-18T02:39:05Z" level=info msg="config signing keys expire after: 6h0m0s"
time="2024-04-18T02:39:05Z" level=info msg="config id tokens valid for: 168h0m0s"
time="2024-04-18T02:39:05Z" level=info msg="config device requests valid for: 5m0s"
time="2024-04-18T02:39:05Z" level=info msg="keys expired, rotating"
time="2024-04-18T02:39:06Z" level=info msg="keys rotated, next rotation: 2024-04-18 08:39:06.27155897 +0000 UTC"
time="2024-04-18T02:39:06Z" level=info msg="listening (http) on 0.0.0.0:5556"
设置日志级别为 info
[LOG] 2024/04/18 - 10:39:08.860   | /common/etcd.client_config                                    24 |  info | KUBOARD_ETCD_ENDPOINTS=[127.0.0.1:2379]
[LOG] 2024/04/18 - 10:39:08.861   | /common/etcd.client_config                                    52 |  info | {[127.0.0.1:2379] 0s 1s 0s 0s 0 0 <nil>   false [] <nil> <nil> <nil> false}
[LOG] 2024/04/18 - 10:39:08.862   | /initializekuboard.InitializeEtcd                             39 |  info | 初始化 ./init-etcd-scripts/audit-policy-once.yaml
[LOG] 2024/04/18 - 10:39:08.867   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuditPolicy GLOBAL/GLOBAL
[LOG] 2024/04/18 - 10:39:08.871   | /initializekuboard.InitializeEtcd                             39 |  info | 初始化 ./init-etcd-scripts/bran-settings-once.yaml
[LOG] 2024/04/18 - 10:39:08.876   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardBrandSettings GLOBAL/KuboardBrandSettings
[LOG] 2024/04/18 - 10:39:08.886   | /initializekuboard.InitializeEtcd                             39 |  info | 初始化 ./init-etcd-scripts/login-policy-once.yaml
[LOG] 2024/04/18 - 10:39:08.887   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardLoginPolicySettings GLOBAL/KuboardLoginPolicySettings
[LOG] 2024/04/18 - 10:39:08.891   | /initializekuboard.InitializeEtcd                             39 |  info | 初始化 ./init-etcd-scripts/roles.yaml
[LOG] 2024/04/18 - 10:39:08.893   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthRole GLOBAL/administrator
[LOG] 2024/04/18 - 10:39:08.897   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthRole GLOBAL/viewer
[LOG] 2024/04/18 - 10:39:08.902   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthRole GLOBAL/authenticated
[LOG] 2024/04/18 - 10:39:08.905   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthRole GLOBAL/anonymous
[LOG] 2024/04/18 - 10:39:08.909   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthRole GLOBAL/sso-user
[LOG] 2024/04/18 - 10:39:08.912   | /initializekuboard.InitializeEtcd                             39 |  info | 初始化 ./init-etcd-scripts/user.yaml
[LOG] 2024/04/18 - 10:39:08.913   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthUser GLOBAL/admin
[LOG] 2024/04/18 - 10:39:08.917   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthGroup GLOBAL/administrators
[LOG] 2024/04/18 - 10:39:08.920   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthUserInGroup GLOBAL/admin.administrators
[LOG] 2024/04/18 - 10:39:08.924   | /initializekuboard.processEtcdObject                         115 |  info |  - 创建对象:KuboardAuthGlobalRoleBinding GLOBAL/group.administrators.administrator
{"level":"warn","ts":"2024-04-18T10:39:08.927+0800","caller":"grpclog/grpclog.go:60","msg":"transport: http2Server.HandleStreams failed to read frame: read tcp 127.0.0.1:2379->127.0.0.1:49530: read: connection reset by peer"}
[LOG] 2024/04/18 - 10:39:08.929   | main.main                                                    115 |  info | 使用 http, 端口: 80
[LOG] 2024/04/18 - 10:39:08.930   | /audit/audit_common.questDbDriverURI                          49 |  info | QuestDB连接参数: postgresql://admin:quest@127.0.0.1:8812/qdb
[LOG] 2024/04/18 - 10:39:08.943   | /kuboard/k8scluster.UpdateNginxConfig                        108 |  info | updated /etc/nginx/nginx.conf and reloaded nginx.conf
[LOG] 2024/04/18 - 10:39:09.041   | /audit/audit_runtime.doInit                                  145 |  info | CREATE TABLE IF NOT EXISTS audit_events.
[LOG] 2024/04/18 - 10:39:09.041   | /audit/audit_runtime.doInit                                  146 |  info | QuestDB Initilized.
[LOG] 2024/04/18 - 10:39:09.041   | /audit/audit_runtime.initConnection                          152 |  info | Create QuestDB Connection.
[LOG] 2024/04/18 - 10:39:09.041   | /audit/audit_common.questDbDriverURI                          49 |  info | QuestDB连接参数: postgresql://admin:quest@127.0.0.1:8812/qdb
[GIN] 2024/04/18 - 10:39:29 | 200 |     917.589µs |  192.168.204.10 | GET      "/kuboard-resources/version.json"
[GIN] 2024/04/18 - 10:39:29 | 200 |    1.505643ms |  192.168.204.10 | GET      "/kuboard-resources/version.json"
[GIN] 2024/04/18 - 10:39:39 | 200 |     180.381µs |  192.168.204.10 | GET      "/kuboard-resources/version.json"
[GIN] 2024/04/18 - 10:39:39 | 200 |     188.272µs |  192.168.204.10 | GET      "/kuboard-resources/version.json"
[GIN] 2024/04/18 - 10:39:49 | 200 |     155.596µs |  192.168.204.10 | GET      "/kuboard-resources/version.json"
[GIN] 2024/04/18 - 10:39:49 | 200 |      147.34µs |  192.168.204.10 | GET      "/kuboard-resources/version.json"
^C

4.K8S 1.29版本 使用Kuboard

(1)访问系统

http://192.168.204.10:30080

(2) 输入初始用户名和密码,并登录

用户名: admin密码: Kuboard123

(3) 查看集群列表

目前为空

http://192.168.204.10:30080/kuboard/cluster

(4)添加k8s集群

添加

弹框

master节点查看

[root@master ~]# cat /etc/kubernetes/admin.conf

粘贴内容并确认

完成添加

http://192.168.204.10:30080/kubernetes/K8S-1.29/cluster/import

(5)再次查看集群列表

(6)访问集群

选择其中一个方式

(7)查看概要信息

http://192.168.204.10:30080/kubernetes/K8S-1.29/cluster/overview

(8)查看节点信息

http://192.168.204.10:30080/kubernetes/K8S-1.29/cluster/node

(9)查看名称空间

http://192.168.204.10:30080/kubernetes/K8S-1.29/cluster/namespace

二、问题

1.docker如何在node节点间移动镜像

(1)命令

1)在第一台服务器上导出Docker镜像
docker save -o <镜像文件名>.tar <镜像名>2)将导出的Docker镜像文件从第一台服务器复制到第二台服务器
scp <镜像文件名>.tar <用户名>@<第二台服务器IP地址>:<目标路径>
连接服务器也可以使用ssh连接scp <镜像文件名>.tar ssh -p 端口号 用户名@服务器地址:<目标路径>3)在第二台服务器上导入Docker镜像
docker load -i <镜像文件名>.tar4)其他
提示没有目录的话就创建目录,创建目录命令:
mkdir [目录名称]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/630606.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅写个登录(无js文件)

全部代码如下&#xff0c;无需编写wxss文件&#xff0c;渲染都在style里面&#xff1a; <view style"height: 250rpx;width: 100%;"> <!-- 背景图片 --><view style"position: absolute; background-color: antiquewhite; height: 250rpx;width…

文件内容操作

文件内容操作 一:字节流1.1:InputStream1.1:构造方法:1.1.2:read()方法:1.1.3:关闭文件:close 1.2:OutputStream1.2.1:write() 二:字符流2.1:Reader2.2:Writer 一:字节流 字节流:以字节为单位读写数据. 常用的类主要有:InputStream,OutputStream 核心操作: (1)通过构造方法,打…

Tensorflow小技巧01:检测本地Tensorflow的版本

前言&#xff1a; 以Pycharm为例&#xff0c;Windwos10系统&#xff0c;检测本地环境的Tensorflow的版本&#xff1a; 1 打开Pycharm窗口 2 在窗口中输入&#xff1a; pythonPython 3.9.5 (tags/v3.9.5:0a7dcbd, May 3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win…

实测52.4MB/s!全志T3+FPGA的CSI通信案例分享!

CSI总线介绍与优势 CSI&#xff08;CMOS sensor parallel interfaces&#xff09;总线是一种用于连接图像传感器和处理器的并行通信接口&#xff0c;应用于工业自动化、能源电力、智慧医疗等领域&#xff0c;CSI总线接口示意图如下所示&#xff08;以全志科技T3处理器的CSI0为…

怎么设置启用远程桌面? 如何让外网电脑远程本地内网?

如何远程控制电脑&#xff1f;最简单实用的方案是开启电脑系统自带的远程桌面功能&#xff0c;如果涉及跨网、内外网互通&#xff0c;可以同时用快解析内网映射外网。下面是方案的具体实施步骤&#xff0c;供大家参考。 怎么打开设置启用远程桌面&#xff1f; 1.在目标需要远…

全球排名前十的搜索引擎,你猜百度排名在第几位?bing稳居二位!

通常情况下&#xff0c;营销人员在争夺其在线业务的流量时会非常关注Google&#xff0c;无论是通过他们的网站&#xff0c;博客文章还是其他形式的内容。考虑到谷歌无疑是最受欢迎的搜索引擎&#xff0c;拥有超过85%的搜索市场份额&#xff0c;这是有道理的。 但这种受欢迎程度…

【云计算】云计算八股与云开发核心技术(虚拟化、分布式、容器化)

【云计算】云计算八股与云开发核心技术&#xff08;虚拟化、分布式、容器化&#xff09; 文章目录 一、什么是云计算&#xff1f;1、云计算的架构&#xff08;基础设施&#xff0c;平台&#xff0c;软件&#xff09;2、云计算的发展 二、如何做云计算开发&#xff1f;云计算的核…

微信小程序实现美食检索功能

1、打开浏览器搜索&#xff1a;腾讯位置服务 2、注册一个账号&#xff0c;有账号的直接登陆就行 3、注册登陆成功后&#xff0c;点击控制台 4、进入控制台后点击我的应用——>创建应用 5、添加key,注意看注释 6、key添加成功后&#xff0c;开始分配额度&#xff08;配额&…

OpenCV从入门到精通实战(五)——dnn加载深度学习模型

从指定路径读取图像文件、利用OpenCV进行图像处理&#xff0c;以及使用Caffe框架进行深度学习预测的过程。 下面是程序的主要步骤和对应的实现代码总结&#xff1a; 1. 导入必要的工具包和模型 程序开始先导入需要的库os、numpy、cv2&#xff0c;同时导入utils_paths模块&…

Hive进阶(4)----MapReduce的计算过程(赋图助君理解)

MapReduce的计算过程 MapReduce是一种编程模型和处理大规模数据集的方法。它通常用于分布式计算环境中&#xff0c;能够将数据处理任务分解成独立的部分&#xff0c;分配给多台计算机进行并行处理。这个模型由Google提出&#xff0c;并在开源领域中得到了广泛的应用和实现。Map…

风力发电自动化控制系统中的智能化技术应用研究

风力发电自动化控制系统中的智能化技术应用研究 随碳中和目标的提出和执行&#xff0c;风能发电作为新能源行业的核心部分&#xff0c;步入了它的黄金发展期。由于风能资源具有间歇性、随机性等特点&#xff0c;这给风电的高效利用带来了巨大挑战。为了增强风力发电系统的工作效…

pycharm永久改变sys.path

进入pycharm&#xff0c;选择file->settings->interpreter 在这里选择图中所示show all 再单击左上角减号右侧第三个&#xff0c;长得像思维导图的图标 之后添加你的路径&#xff0c;确认即可