2020年11月

目录

关注我们

关注 ThingsBoard 微信公众号

手动增加微信公众号:thingsboard_cn
2023-10-26T01:09:12.png

访问 ThingsBoard 中文社区网站

访问网址:http://www.thingsboard.club
2023-10-26T01:08:23.png

众所周知,Kubernetes(k8s)太火了,太牛了,咱们把部署在 ThingsBoard 上更是理所当然。一句话总结:步骤很简单,过程很艰辛!

准备 Docker 和 Kubernetes 环境

安装 Docker Desktop CE 版本

  • 笔者使用的老版本 MacBook Pro 13,下载安装 Docker Desktop CE 版本,这个比较简单,官方下载,安装即可完成,启动。
    ![docker.png][1]
  • 启用 Docker Desktop 中 Kubernetes
    ![kubernetes-in-docker.png][2]

哇塞,是不是太简单了?当然不会那么容易搞定,你会一直出现 “Starting” 的状态,别傻等,要去 Google 一下。关键字:如何成功启动 Docker 自带的 Kubernetes? 总之,你一定要找到办法解决你的 Kubernetes 成功启动。

安装 Kubenetes 本地版本

  • 安装 Kubernetes,就是简单,本地安装搞定
    
    # brew install kubernetes-cli

kubectl version --client

Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4", GitCommit:"d360454c9bcd1634cf4cc52d1867af5491dc9c5f", GitTreeState:"clean", BuildDate:"2020-11-12T01:09:16Z", GoVersion:"go1.15.4", Compiler:"gc", Platform:"darwin/amd64"}

- 为了让 Docker Desktop 启动 k8s,需下载相关的 docker images,需要通过一个脚本 docker-images-k8s.sh,然后运行,从 aliyun 下载 docker image 比较快。

!/bin/bash

set -e
KUBE_VERSION=v1.19.3
KUBE_PAUSE_VERSION=3.2
ETCD_VERSION=3.4.13-0
COREDNS_VERSION=1.7.0
GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

get images

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${COREDNS_VERSION})

for imageName in ${images[@]} ; do
docker pull $ALIYUN_URL/$imageName
docker tag $ALIYUN_URL/$imageName $GCR_URL/$imageName
docker rmi $ALIYUN_URL/$imageName
done

show images

docker images

- 为了查看 k8s 运行状态,web 管理工具 kubernetes dashboard 自然少不了,新建 docker-images-dashboard.sh,运行

!/bin/bash

set -e
KUBE_DASHBOARD_VERSION=v2.0.3
METRICS_SCRAPER=v1.0.4
KUBENETESUI_URL=kubernetesui
ALIYUN_KUBENETESUI_URL=registry.cn-hangzhou.aliyuncs.com/kubernetes_ns

get images (ui)

imagesui=(dashboard:${KUBE_DASHBOARD_VERSION}
metrics-scraper:${METRICS_SCRAPER})

for imageName in ${imagesui[@]} ; do
docker pull $ALIYUN_KUBENETESUI_URL/$imageName
docker tag $ALIYUN_KUBENETESUI_URL/$imageName $KUBENETESUI_URL/$imageName
docker rmi $ALIYUN_KUBENETESUI_URL/$imageName
done

show images

docker images

- 再去看 Docker Desktop 中已经启动 k8s了,耐心一点,这个时间比较长,验证一下,发现 Server Version 出现了证明服务器安装成功,且客户端可以连接上

kubectl version

Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.4", GitCommit:"d360454c9bcd1634cf4cc52d1867af5491dc9c5f", GitTreeState:"clean", BuildDate:"2020-11-12T01:09:16Z", GoVersion:"go1.15.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.3", GitCommit:"1e11e4a2108024935ecfcb2912226cedeafd99df", GitTreeState:"clean", BuildDate:"2020-10-14T12:41:49Z", GoVersion:"go1.15.2", Compiler:"gc", Platform:"linux/amd64"}

- 启用 k8s dashboard,需要调用一个 yaml
[k8s-dashboard.yaml][3]

kubectl apply -f k8s-dashboard.yaml

namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created

kubectl proxy

Starting to serve on 127.0.0.1:8001

- 启动成功后,打开浏览器,就可以登陆 Dashboard
要么证书登陆,要么 token 登陆,先执行:

TOKEN=$(kubectl -n kube-system describe secret default| awk '$1=="token:"{print $2}')
kubectl config set-credentials docker-desktop --token="${TOKEN}"
echo $TOKEN

显示的内容就是 token

1. 证书登陆时,选择 ~/.kube/config
2. token 登陆就是上面那串
![k8s-dashbaord.png][4]
登陆成功后
![k8s-dashbaord-home.png][5]

# 安装 ThingsBoard 到 k8s
## 安装 ThingsBoard

> 根据官方文档,照着执行就好:https://github.com/thingsboard/thingsboard/tree/master/k8s
- 保证网络畅通,因为需要从 docker hub 下载 images,建议用国内的镜像地址
- 过程比较麻烦,不好监控,只能不停的刷 docker images 命令查看是不是把镜像拉下来了

REPOSITORY TAG IMAGE ID CREATED SIZE
zookeeper 3.5 ce6733a90146 3 days ago 245MB
postgres 12 386fd8c60839 3 days ago 314MB
k8s.gcr.io/ingress-nginx/controller 81d7cdfa4169 9 days ago 280MB
jettech/kube-webhook-certgen v1.5.0 344297e197b6 3 weeks ago 44.7MB
docker/desktop-kubernetes kubernetes-v1.19.3-cni-v0.8.5-critools-v1.17.0 7f85afe431d8 5 weeks ago 285MB
k8s.gcr.io/kube-proxy v1.19.3 cdef7632a242 5 weeks ago 118MB
k8s.gcr.io/kube-apiserver v1.19.3 a301be0cd44b 5 weeks ago 119MB
k8s.gcr.io/kube-scheduler v1.19.3 aaefbfa906bd 5 weeks ago 45.7MB
k8s.gcr.io/kube-controller-manager v1.19.3 9b60aca1d818 5 weeks ago 111MB
thingsboard/tb-coap-transport latest 5635dd5c4fe6 2 months ago 865MB
thingsboard/tb-http-transport latest 7f60b6a3bd83 2 months ago 864MB
thingsboard/tb-mqtt-transport latest 8dfe9a5bc20d 2 months ago 864MB
thingsboard/tb-node latest a66803235c46 2 months ago 1.09GB
thingsboard/tb-web-ui latest e215f4aa841a 2 months ago 426MB
thingsboard/tb-js-executor latest 7c4fdfa00e27 2 months ago 494MB
k8s.gcr.io/etcd 3.4.13-0 0369cf4303ff 2 months ago 253MB
kubernetesui/dashboard v2.0.3 503bc4b7440b 5 months ago 225MB
k8s.gcr.io/coredns 1.7.0 bfe3a36ebd25 5 months ago 45.2MB
redis 4.0 191c4017dcdd 7 months ago 89.3MB
kubernetesui/metrics-scraper v1.0.4 86262685d9ab 8 months ago 36.9MB
docker/desktop-storage-provisioner v1.1 e704287ce753 8 months ago 41.8MB
docker/desktop-vpnkit-controller v1.0 79da37e5a3aa 8 months ago 36.6MB
k8s.gcr.io/pause 3.2 80d28bedfe5d 9 months ago 683kB
wurstmeister/kafka 2.12-2.2.1 86a9c7e5fd97 11 months ago 422MB


- 过了很长一段时间,有可能几个小时后,你查看 docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9d8b9a28efc e704287ce753 "/storage-provisione…" 6 minutes ago Up 6 minutes k8s_storage-provisioner_storage-provisioner_kube-system_50005a87-62d2-45a0-a39e-c34af43d24c9_3
83e1a62bb612 aaefbfa906bd "kube-scheduler --au…" 6 minutes ago Up 6 minutes k8s_kube-scheduler_kube-scheduler-docker-desktop_kube-system_ee4c94eb845abf1878fb3c4c489b1365_7
b4e4d52ae0bc thingsboard/tb-node "start-tb-node.sh" 7 hours ago Up 7 hours k8s_server_tb-node-5b47bb8bd6-x8g8b_thingsboard_532519fd-7441-4a10-a0b3-3458bb9784a3_5
462b9a657c4f thingsboard/tb-node "start-tb-node.sh" 7 hours ago Up 7 hours k8s_server_tb-node-5b47bb8bd6-vqrvb_thingsboard_3f25d857-1624-4d27-90a5-2c54c35747ee_5
4f3a74233acd thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-vvb9v_thingsboard_46063547-8f06-4e81-85b4-00cb4b2a5f42_7
211329243cdd thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-l5gmw_thingsboard_29f294c1-5fd0-44a5-98a0-3880b6fe7126_7
3a6f946e86be thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-h8zqk_thingsboard_82bc9e2b-5db7-409a-9be5-4e7c21f481b8_6
28085da4bbae thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-ftwf8_thingsboard_0c3f60a2-fd08-4951-9d98-80d08bfa439c_6
ed33cf23175c thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-h2vkl_thingsboard_990be16d-12d8-4f7d-8ce4-1ef4a83ac31b_7
6b7fc0bd2fbb thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-pwc4z_thingsboard_28c0106c-9587-466f-90b3-b3af6eaed7ea_7
520ed4711677 thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-gvx2g_thingsboard_afeb8b5c-ab53-48ba-927f-2d20b5fc6c3b_6
5baeda96c4a3 thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-2z89t_thingsboard_d7ec851c-8648-465a-a855-0a23575e3c3b_6
81f692bc2768 thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-7rl82_thingsboard_08864e79-2af0-42b5-b592-4c1a2db1d5cd_6
cb8bf860467a thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-ljwz8_thingsboard_92de7aab-fca3-4e0c-ac3e-02213603d359_7
917ba1ee6732 thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-c27qd_thingsboard_0c79ed1e-1d65-4d46-a7b1-08de77402549_6
0ada7d6b48b9 thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-k4ncf_thingsboard_cdd283fc-d0a2-45b6-b533-00dd4d38e782_7
ffc91b31b24c thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-5p9tg_thingsboard_87e80c57-0f84-43eb-bf24-13cc309e4cec_7
13b6d7dfb387 thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-zvgrp_thingsboard_1fad5bb8-5793-48e7-8dcc-7cbaf0475192_6
0f63ffec3cbb thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-fvvrx_thingsboard_88c65221-c5d3-419d-a155-21cfee3b7157_7
29c432f70609 thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-zvd2t_thingsboard_e0315452-8b8f-4c0a-9488-d56e296ec962_7
58a2f29e2f6a thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-gpndh_thingsboard_99c29bd4-cb0f-4fb8-8061-ebdda21359de_7
637a32ae8d4d thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-r2r5b_thingsboard_6ba2cc34-d6bb-4c14-96c8-0c11e20fd051_7
0d49592908fd thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-j756s_thingsboard_0be1997a-4d1b-4d01-a3ab-55d6e468f39d_7
5e342a30e5c6 thingsboard/tb-js-executor "start-js-executor.sh" 7 hours ago Up 7 hours k8s_server_tb-js-executor-56bbb8f446-9mmf2_thingsboard_97fc3fa7-ad20-4ffc-a34a-cda7aba93305_7
044277041f7a thingsboard/tb-mqtt-transport "start-tb-mqtt-trans…" 7 hours ago Up 7 hours k8s_server_tb-mqtt-transport-fb5f5d5cd-xkwcn_thingsboard_d91bc9c9-de41-4866-8fe1-03831af3a58c_3
e7b427121ff2 thingsboard/tb-http-transport "start-tb-http-trans…" 7 hours ago Up 7 hours k8s_server_tb-http-transport-64f6f66bc7-zzvqb_thingsboard_520ed11c-239e-4083-919b-fec38277f233_3
a2a4da430f0d thingsboard/tb-http-transport "start-tb-http-trans…" 7 hours ago Up 7 hours k8s_server_tb-http-transport-64f6f66bc7-ztmng_thingsboard_0e628481-0398-4ddd-ad97-31c5987796f9_3
2749cf276c80 wurstmeister/kafka "start-kafka.sh" 7 hours ago Up 7 hours k8s_server_tb-kafka-78957b6557-fc8js_thingsboard_2a3d3e60-0b40-45ba-91da-70f29f270a04_5
f296ce350482 thingsboard/tb-mqtt-transport "start-tb-mqtt-trans…" 7 hours ago Up 7 hours k8s_server_tb-mqtt-transport-fb5f5d5cd-bs4tw_thingsboard_ef25b3b1-658e-4e4c-bd1c-a0ca2ab20ce4_3
d7ebb30d2fc7 postgres "docker-entrypoint.s…" 7 hours ago Up 7 hours k8s_postgres_postgres-5cf775766f-clf89_thingsboard_599ecf9f-068c-416e-ab73-95760f1099db_1
2ad0a6662ca9 thingsboard/tb-coap-transport "start-tb-coap-trans…" 7 hours ago Up 7 hours k8s_server_tb-coap-transport-59cc8bd7bc-82zfk_thingsboard_73404a55-e170-4441-b733-5417db6461ad_1
33c4da97f3d7 thingsboard/tb-coap-transport "start-tb-coap-trans…" 7 hours ago Up 7 hours k8s_server_tb-coap-transport-59cc8bd7bc-g8jdw_thingsboard_a48518d7-c929-4a1f-bcc8-c16fdf903fbf_1
3f8d5b8e9d9f thingsboard/tb-web-ui "start-web-ui.sh" 7 hours ago Up 7 hours k8s_server_tb-web-ui-5958f67cc-lg974_thingsboard_5de819ae-f832-4ab6-bdce-0f29daf037ff_1
beb462957a30 redis "docker-entrypoint.s…" 7 hours ago Up 7 hours k8s_server_tb-redis-7fb674db9-pzndj_thingsboard_6ff6ba21-933d-4366-89eb-3d815f5282c9_1
e24d2ea2e00a thingsboard/tb-web-ui "start-web-ui.sh" 7 hours ago Up 7 hours k8s_server_tb-web-ui-5958f67cc-4k4cj_thingsboard_6f3795e9-ded9-46b8-8067-b4afd63f2571_1
c2161ce93009 zookeeper "/docker-entrypoint.…" 7 hours ago Up 7 hours k8s_server_zookeeper-547c6ffb99-bq42m_thingsboard_11a1e06d-bbf1-4b55-bab5-7d4e4b876f20_1
4e02d9bde8ab 79da37e5a3aa "/kube-vpnkit-forwar…" 7 hours ago Up 7 hours k8s_vpnkit-controller_vpnkit-controller_kube-system_6fa3177c-f779-414d-8acb-1342dd87849b_1
30f7af7ffa00 kubernetesui/dashboard "/dashboard --insecu…" 7 hours ago Up 7 hours k8s_kubernetes-dashboard_kubernetes-dashboard-5dbf55bd9d-bcc2v_kubernetes-dashboard_1e414605-d8c1-4918-8e9b-18bc2c01efe6_1
517bc1b7ac3e 81d7cdfa4169 "/usr/bin/dumb-init …" 7 hours ago Up 7 hours k8s_controller_ingress-nginx-controller-c4f944d4d-wcqxv_ingress-nginx_329aa6a7-2ee5-4747-b77d-82182d9a872f_1
d674f87354ca 86262685d9ab "/metrics-sidecar" 7 hours ago Up 7 hours k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-7b59f7d4df-5dkwl_kubernetes-dashboard_3235eff1-3822-4138-8d0e-d45de95d3cbf_1
faf05611eaa3 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-gvx2g_thingsboard_afeb8b5c-ab53-48ba-927f-2d20b5fc6c3b_1
1a1956a65635 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-coap-transport-59cc8bd7bc-82zfk_thingsboard_73404a55-e170-4441-b733-5417db6461ad_1
d5a382ca986e k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-pwc4z_thingsboard_28c0106c-9587-466f-90b3-b3af6eaed7ea_1
c80049396050 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-kafka-78957b6557-fc8js_thingsboard_2a3d3e60-0b40-45ba-91da-70f29f270a04_1
7b192ede32e5 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-coap-transport-59cc8bd7bc-g8jdw_thingsboard_a48518d7-c929-4a1f-bcc8-c16fdf903fbf_1
c33e9576e5a9 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-http-transport-64f6f66bc7-zzvqb_thingsboard_520ed11c-239e-4083-919b-fec38277f233_1
6e90c5e851b7 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-h2vkl_thingsboard_990be16d-12d8-4f7d-8ce4-1ef4a83ac31b_1
e74011796607 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-ftwf8_thingsboard_0c3f60a2-fd08-4951-9d98-80d08bfa439c_1
8e7b08eaf0e4 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-7rl82_thingsboard_08864e79-2af0-42b5-b592-4c1a2db1d5cd_1
fd3c552a04ee k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-vvb9v_thingsboard_46063547-8f06-4e81-85b4-00cb4b2a5f42_1
d3dc754a1f71 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-l5gmw_thingsboard_29f294c1-5fd0-44a5-98a0-3880b6fe7126_1
372fd6514108 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-gpndh_thingsboard_99c29bd4-cb0f-4fb8-8061-ebdda21359de_1
caf096a5bf42 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-node-5b47bb8bd6-x8g8b_thingsboard_532519fd-7441-4a10-a0b3-3458bb9784a3_1
a80bbd2267ec bfe3a36ebd25 "/coredns -conf /etc…" 7 hours ago Up 7 hours k8s_coredns_coredns-f9fd979d6-ff45j_kube-system_df1c5b8b-26f5-48cc-a853-c050090e69ef_1
1f1b01587d81 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-redis-7fb674db9-pzndj_thingsboard_6ff6ba21-933d-4366-89eb-3d815f5282c9_1
992b5afa6aa1 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-web-ui-5958f67cc-lg974_thingsboard_5de819ae-f832-4ab6-bdce-0f29daf037ff_1
271ad2fced2b k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-fvvrx_thingsboard_88c65221-c5d3-419d-a155-21cfee3b7157_1
344ddec06f1e k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-h8zqk_thingsboard_82bc9e2b-5db7-409a-9be5-4e7c21f481b8_1
6ad3af03d452 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_vpnkit-controller_kube-system_6fa3177c-f779-414d-8acb-1342dd87849b_1
413d3e3fef5f k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-http-transport-64f6f66bc7-ztmng_thingsboard_0e628481-0398-4ddd-ad97-31c5987796f9_1
b42279032251 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-zvd2t_thingsboard_e0315452-8b8f-4c0a-9488-d56e296ec962_1
472cd017176e bfe3a36ebd25 "/coredns -conf /etc…" 7 hours ago Up 7 hours k8s_coredns_coredns-f9fd979d6-k54r2_kube-system_9355c0e5-b8fc-4c3c-9644-89749adeee97_1
3e0fe843bcbe k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_postgres-5cf775766f-clf89_thingsboard_599ecf9f-068c-416e-ab73-95760f1099db_1
e199dac37dec k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-mqtt-transport-fb5f5d5cd-xkwcn_thingsboard_d91bc9c9-de41-4866-8fe1-03831af3a58c_1
e72505d9d064 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-ljwz8_thingsboard_92de7aab-fca3-4e0c-ac3e-02213603d359_1
43362e2031d8 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-2z89t_thingsboard_d7ec851c-8648-465a-a855-0a23575e3c3b_1
9c876bbc23be k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-c27qd_thingsboard_0c79ed1e-1d65-4d46-a7b1-08de77402549_1
11b89fccd02d k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-node-5b47bb8bd6-vqrvb_thingsboard_3f25d857-1624-4d27-90a5-2c54c35747ee_1
9a047136e01b k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-k4ncf_thingsboard_cdd283fc-d0a2-45b6-b533-00dd4d38e782_1
c13f8513edf1 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-zvgrp_thingsboard_1fad5bb8-5793-48e7-8dcc-7cbaf0475192_1
0fada7a20fe0 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-j756s_thingsboard_0be1997a-4d1b-4d01-a3ab-55d6e468f39d_1
3e8bd573933b k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-5p9tg_thingsboard_87e80c57-0f84-43eb-bf24-13cc309e4cec_1
936695bf38e1 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-web-ui-5958f67cc-4k4cj_thingsboard_6f3795e9-ded9-46b8-8067-b4afd63f2571_1
15bc2206a101 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_ingress-nginx-controller-c4f944d4d-wcqxv_ingress-nginx_329aa6a7-2ee5-4747-b77d-82182d9a872f_1
9fb9bcc3f42e k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-mqtt-transport-fb5f5d5cd-bs4tw_thingsboard_ef25b3b1-658e-4e4c-bd1c-a0ca2ab20ce4_1
e5ff72d6497d cdef7632a242 "/usr/local/bin/kube…" 7 hours ago Up 7 hours k8s_kube-proxy_kube-proxy-4fx4m_kube-system_61c86591-198c-4bcc-ac9a-756ba949c71c_1
e8b88981ec37 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_zookeeper-547c6ffb99-bq42m_thingsboard_11a1e06d-bbf1-4b55-bab5-7d4e4b876f20_1
2366f0c673fc k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-r2r5b_thingsboard_6ba2cc34-d6bb-4c14-96c8-0c11e20fd051_1
dc3c77cd895b k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_tb-js-executor-56bbb8f446-9mmf2_thingsboard_97fc3fa7-ad20-4ffc-a34a-cda7aba93305_1
7cef6c1b6fd8 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_coredns-f9fd979d6-ff45j_kube-system_df1c5b8b-26f5-48cc-a853-c050090e69ef_1
7f3bf1c89eef k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_dashboard-metrics-scraper-7b59f7d4df-5dkwl_kubernetes-dashboard_3235eff1-3822-4138-8d0e-d45de95d3cbf_1
cedd269cda38 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_coredns-f9fd979d6-k54r2_kube-system_9355c0e5-b8fc-4c3c-9644-89749adeee97_1
1ff5b8974607 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_kubernetes-dashboard-5dbf55bd9d-bcc2v_kubernetes-dashboard_1e414605-d8c1-4918-8e9b-18bc2c01efe6_1
38c2265588a8 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_storage-provisioner_kube-system_50005a87-62d2-45a0-a39e-c34af43d24c9_1
47dfcf754624 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_kube-proxy-4fx4m_kube-system_61c86591-198c-4bcc-ac9a-756ba949c71c_1
2410f48b0dcb 0369cf4303ff "etcd --advertise-cl…" 7 hours ago Up 7 hours k8s_etcd_etcd-docker-desktop_kube-system_c7cc6a3c3118f127f5fd469ef69477e0_1
8282e8feb792 a301be0cd44b "kube-apiserver --ad…" 7 hours ago Up 7 hours k8s_kube-apiserver_kube-apiserver-docker-desktop_kube-system_2085f5be68201a12aeffb940f7ba4272_1
a8d6bd3cc82a 9b60aca1d818 "kube-controller-man…" 7 hours ago Up 7 hours k8s_kube-controller-manager_kube-controller-manager-docker-desktop_kube-system_07d42b7bf3823b30f57219558fcb55e2_1
acebbb6ddd18 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_kube-scheduler-docker-desktop_kube-system_ee4c94eb845abf1878fb3c4c489b1365_1
d395721ce499 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_kube-controller-manager-docker-desktop_kube-system_07d42b7bf3823b30f57219558fcb55e2_1
ff1cfd6ae1b2 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_kube-apiserver-docker-desktop_kube-system_2085f5be68201a12aeffb940f7ba4272_1
2060020e4bc4 k8s.gcr.io/pause:3.2 "/pause" 7 hours ago Up 7 hours k8s_POD_etcd-docker-desktop_kube-system_c7cc6a3c3118f127f5fd469ef69477e0_1

好多个 container 在跑,好壮观

> 这时,你以为可以成功访问 ThingsBoard 主页吗?不行,真的不行,因为还差一个步骤,非常重要,那就是你的机器还没有 ingress ,建议你去好好读一读这个知识点。

## 安装 Ingress Nginx
- 直接去官方网站看文档,照着执行,但是你需要科学上网:https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/cloud/deploy.yaml

想办法把这个文件搞下来,因为这是部署 Ingress Nginx 的配置文件

我提供一个备份: [ingress-nginx.yaml][6],启动:

kubectl apply -f ingress-nginx.yaml

namespace/ingress-nginx unchanged
serviceaccount/ingress-nginx unchanged
configmap/ingress-nginx-controller configured
clusterrole.rbac.authorization.k8s.io/ingress-nginx unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged
role.rbac.authorization.k8s.io/ingress-nginx unchanged
rolebinding.rbac.authorization.k8s.io/ingress-nginx unchanged
service/ingress-nginx-controller-admission unchanged
service/ingress-nginx-controller unchanged
deployment.apps/ingress-nginx-controller configured
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission configured
serviceaccount/ingress-nginx-admission unchanged
clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission unchanged
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission unchanged
role.rbac.authorization.k8s.io/ingress-nginx-admission unchanged
rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission unchanged
job.batch/ingress-nginx-admission-create unchanged
job.batch/ingress-nginx-admission-patch unchanged

- 下载 ingress-nginx 镜像

docker pull k8s.gcr.io/ingress-nginx/controller:v0.41.2@sha256:1f4f402b9c14f3ae92b11ada1dfe9893a88f0faeb0b2f4b903e2c67a0c3bf0de

因为系统提示,这个镜像无法下载,或这很慢,你需要手动执行。看看有没有成功:

kubectl get pods -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx --watch

NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-sd5zj 0/1 Completed 0 16m
ingress-nginx-admission-patch-pfjhp 0/1 Completed 2 16m
ingress-nginx-controller-c4f944d4d-wcqxv 0/1 Running 0 16m

ingress-nginx-controller-c4f944d4d-wcqxv 1/1 Running 0 16m

- 查看本地是否已经成功监听 80 和 443 端口,如果存在,那就是跑通了

netstat -na |grep LIST

tcp46 0 0 .1883 . LISTEN
tcp46 0 0
.443 . LISTEN
tcp46 0 0 .80 .* LISTEN


- 查看 k8s dashboard 状态
![tb-in-k8s.png][7]
- ThingsBoard 登陆界面,出现太重要了
![tg-login.png][8]
- 成功登陆,且新建租户正常
![tb-tenant.png][9]


## 最后,不建议在本地跑 k8s,速度太慢了,不如跑 jar 来的方便,调试起来也不方便。开发环境用 mvn spring-boot:run,测试环境直接部署在 CentOS 或 Ubuntu 环境单机跑足够用了,大量数据采集,访问用户数量大,才可以试试 k8s 环境,欢迎大家留言讨论! ##

  [1]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/3847183869.png
  [2]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/1301930728.png
  [3]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/1712863204.yaml
  [4]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/15528435.png
  [5]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/746719120.png
  [6]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/2160153585.yaml
  [7]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/1052366375.png
  [8]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/310291162.png
  [9]: https://yiqisoft.cn/blogs/usr/uploads/2020/11/2850801996.png