K3S 私有化部署方案实践
准备工作
硬件
- 主 K3S Master 节点:3 台, master101, master102, master103
- 业务 K3S Master 节点:3 台,master151, master152, master153
- Worker 节点:N 台,随意, worker01, worker02, ...
软件
基础配置
- 操作系统:Ubuntu Server 22.04 最小化安装系统,包含:openssh-server, iputils-ping, net-tools, vim
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
- 管理集群
主机名 | IP | 其他 |
---|---|---|
database | 192.168.198.100 | 数据库+NFS 存储,如有需要做 HA |
master101 | 192.168.198.101 | 管理 K3S master |
master102 | 192.168.198.102 | 管理 K3S master |
master103 | 192.168.198.103 | 管理 K3S master |
- 业务集群
主机名 | IP | 其他 |
---|---|---|
master151 | 192.168.123.151 | 业务 K3S master + worker |
master152 | 192.168.123.152 | 业务 K3S master + worker |
master153 | 192.168.123.153 | 业务 K3S master + worker |
worker161 | 192.168.123.161 | 业务 worker |
worker162 | 192.168.123.162 | 业务 worker |
数据库配置
Docker
- 准备 docker 环境
curl -fsSL https://get.docker.com | sh -
- 验证 docker
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
- 设置一个 Registry 镜像
cat /etc/docker/daemon.json
{
"insecure-registries" : [ "0.0.0.0/0" ],
"registry-mirrors": [ "https://xxx.mirror.swr.myhuaweicloud.com" ]
}
- 重启 docker
systemctl restart docker
数据库
PostgreSQL
- 创建 compose.yml
services:
postgres:
image: postgres:alpine
container_name: postgres
restart: unless-stopped
environment:
POSTGRES_USER: k3s
POSTGRES_PASSWORD: talent
POSTGRES_DB: k3s
ports:
- "5432:5432"
volumes:
- ./data:/var/lib/postgresql/data
- ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
- 创建脚本 init-db.sh
##!/bin/bash
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname=postgres <<-EOSQL
CREATE DATABASE harbor;
EOSQL
- 启动 PostgreSQL 数据库容器
docker compose up -d
- 验证数据库
docker exec -it postgres psql -U k3s -c '\l'
List of databases
Name | Owner | Encoding | Locale Provider | Collate | Ctype | Locale | ICU Rules | Access privileges
-----------+-------+----------+-----------------+------------+------------+--------+-----------+-------------------
harbor | k3s | UTF8 | libc | en_US.utf8 | en_US.utf8 | | |
k3s | k3s | UTF8 | libc | en_US.utf8 | en_US.utf8 | | |
...
(5 rows)
MySQL
因为 Rancher 只支持 MySQL 不支持 PostgreSQL
- 创建 compose.yml
services:
mysql:
image: mysql:latest
container_name: mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: talent
MYSQL_DATABASE: rancher
MYSQL_USER: rancher
MYSQL_PASSWORD: talent
ports:
- "3306:3306"
volumes:
- ./data:/var/lib/mysql
- ./init:/docker-entrypoint-initdb.d
- 创建脚本 init/permissions.sql
GRANT ALL PRIVILEGES ON *.* TO 'rancher'@'%' IDENTIFIED BY 'talent';
FLUSH PRIVILEGES;
- 启动 MySQL 数据库容器
docker compose up -d
- 验证数据库
docker exec -it mysql mysql -u rancher -p'talent' -e "SHOW DATABASES;"
+--------------------+
| Database |
+--------------------+
| rancher |
+--------------------+
部署 K3S 管理集群
本章节内容在
管理 K3S 主机
上执行
主机名
- 所有的 Master 配置相同的 /etc/hosts
127.0.0.1 localhost
127.0.1.1 master101 # CHAMGEME
192.168.198.100 database
192.168.198.101 master101
192.168.198.102 master102
192.168.198.103 master103
K3S 核心安装
自动安装(推荐
)
- 可以连接互联网的情况下
默认安装最新版本,这里是:
v1.30.5+k3s1
,注意:k3s:talent
是你自己的数据库用户名密码
curl -sfL https://get.k3s.io | sh -s - server \
--datastore-endpoint="postgres://k3s:talent@database:5432/k3s?sslmode=disable"
- 验证安装
kubectl get nodes
NAME STATUS ROLES AGE VERSION
master101 Ready control-plane,master 43s v1.30.5+k3s1
- 其他 Master 安装方式一样。在任何一台 Master 上确认安装完成
kubectl get nodes
NAME STATUS ROLES AGE VERSION
master101 Ready control-plane,master 117s v1.30.5+k3s1
master102 Ready control-plane,master 118s v1.30.5+k3s1
master103 Ready control-plane,master 29s v1.30.5+k3s1
手动二进制文件安装(不推荐
)
- 下载二进制文件
wget https://github.com/k3s-io/k3s/releases/download/vX.X.X/k3s -O /usr/local/bin/k3s
chmod +x /usr/local/bin/k3s
- 初始化
k3s server --cluster-init
- 设置自启动脚本 所有 Master 机器上一样的配置
cat <<EOF | sudo tee /etc/systemd/system/k3s.service
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
After=network.target
[Service]
ExecStart=/usr/local/bin/k3s server --datastore-endpoint="postgres://k3s:talent@database:5432/k3s?sslmode=disable"
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
- 更新自启动设置
systemctl daemon-reload
systemctl enable k3s
systemctl start k3s
- 查看集群状态 任何一台 Master 都可以
/usr/local/bin/k3s kubectl get nodes
Master / Worker 手动加入(如有必要
)
- 获取集群 token
cat /var/lib/rancher/k3s/server/node-token
- Master 直接加入集群(不建议)
k3s server --server https://master101:6443 --token <token>
或修改 /etc/systemd/system/k3s.service
- Worker 加入(可选)
替换
<node-token>
为你的 token
cat <<EOF | sudo tee /etc/systemd/system/k3s-agent.service
[Unit]
Description=Lightweight Kubernetes
Documentation=https://k3s.io
After=network.target
[Service]
ExecStart=/usr/local/bin/k3s agent --server https://master101:6443 --token <node-token>
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
EOF
- 更新自启动设置
systemctl daemon-reload
systemctl enable k3s-agent
systemctl start k3s-agent
不管怎么操作,基础三个主机的 K3S 集群要跑起来,保证基础工作完成。
安装 Rancher 集群管理工具和 Harbor Registry 仓库
准备工作
安装 Kubernetes 包管理工具 Helm
- 选择一个 Master 或全部 Master,安装 Helm
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash -
- 设置环境变量
加入到
/etc/profile
自启动
echo "export KUBECONFIG=/etc/rancher/k3s/k3s.yaml" >> /etc/profile && source /etc/profile
安装证书管理器 cert-manager
- helm 脚本安装
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.3/cert-manager.crds.yaml
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager --namespace cert-manager \
--create-namespace --version v1.15.3
- 验证安装成功
kubectl get pods --namespace cert-manager
NAME READY STATUS RESTARTS AGE
cert-manager-9647b459d-9jwpj 1/1 Running 0 2m47s
cert-manager-cainjector-5d8798687c-66r95 1/1 Running 0 2m47s
cert-manager-webhook-c77744d75-k22h5 1/1 Running 0 2m47s
- 设置自签名 Issuer
创建 issuer-cert.yaml, 这里创建两个:
rancher.yiqisoft.com
hub.yiqisoft.com
, 后面访问集群业务就是通过域名来通信
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: selfsigned-issuer
spec:
selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: rancher-cert
namespace: cattle-system
spec:
secretName: rancher-cert-secret
issuerRef:
name: selfsigned-issuer
kind: ClusterIssuer
commonName: rancher.yiqisoft.com
duration: 315360000s
renewBefore: 240h
dnsNames:
- rancher.yiqisoft.com
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: hub-cert
namespace: harbor
spec:
secretName: hub-cert-secret
issuerRef:
name: selfsigned-issuer
kind: ClusterIssuer
commonName: hub.yiqisoft.com
duration: 315360000s
renewBefore: 240h
dnsNames:
- hub.yiqisoft.com
- 安装自定义 Certificate 先创建两个 namespace,再安装脚本
kubectl create namespace harbor
kubectl create namespace cattle-system
kubectl apply -f issuer-cert.yaml
结果输出
clusterissuer.cert-manager.io/selfsigned-issuer created
certificate.cert-manager.io/rancher-cert created
certificate.cert-manager.io/hub-cert created
安装 Rancher
- 增加 Rancher Helm 仓库
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm repo update
- 安装 Rancher 这个过程比较漫长,需要从互联网下载
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.yiqisoft.com \
--set replicas=3 \
--set extraEnv[0].name=CATTLE_DATABASE_ENDPOINT \
--set extraEnv[0].value=database:3306 \
--set extraEnv[1].name=CATTLE_DATABASE_USER \
--set extraEnv[1].value=rancher \
--set extraEnv[2].name=CATTLE_DATABASE_PASSWORD \
--set extraEnv[2].value=talent \
--set extraEnv[3].name=CATTLE_DATABASE_NAME \
--set extraEnv[3].value=rancher
- 验证安装成功
kubectl get pods --namespace cattle-system
结果
NAME READY STATUS RESTARTS AGE
rancher-567cc5c6ff-bzx42 1/1 Running 0 65m
rancher-567cc5c6ff-mgvns 1/1 Running 0 86m
rancher-567cc5c6ff-rbgjn 1/1 Running 0 86m
rancher-webhook-77b49b9ff9-mp2dm 1/1 Running 0 142m
安装 Harbor
Harbor 作为内部 docker hub 使用
使用 Ceph(推荐)
准备一个 Ceph 集群用于存储(这里省略
)。
使用 NFS
简单实用,但是效率不高,安全性一般。
- 在一个文件服务器上部署 NFS,这里用 database 主机
apt update
apt install nfs-kernel-server -y
mkdir -p /opt/nfs_share
chown nobody:nogroup /opt/nfs_share
chmod 777 /opt/nfs_share
echo "/opt/nfs_share *(rw,sync,no_subtree_check)" >> /etc/exports
exportfs -ra
systemctl restart nfs-kernel-server
部署 pv 和 pvc
- 编辑 pv-pvc.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 30Gi
accessModes:
- ReadWriteMany
nfs:
path: /opt/nfs_share
server: database
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
volumeName: nfs-pv
storageClassName: ""
- 应用到 namespace harbor
kubectl apply -f pv-pvc.yaml -n harbor
结果
persistentvolume/nfs-pv created
persistentvolumeclaim/nfs-pvc created
- 查看结果,nfs-pvc 必须是
Bound
kubectl get pvc -n harbor
结果
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
nfs-pvc Bound nfs-pv 30Gi RWX <unset> 92s
- 查看 nfs-pv 必须是
Bound
kubectl get pv -n harbor
结果
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
nfs-pv 30Gi RWX Retain Bound harbor/nfs-pvc <unset> 97s
部署 Harbor Helm
- 安装 NFS 依赖
所有的 Master 上需要安装 nfs-common,并验证(
可选
),可以访问/tmp/nfs
目录
apt install nfs-common -y
mkdir /tmp/nfs
mount -t nfs database:/opt/nfs_share /tmp/nfs
ll /tmp/nfs
- 增加 Harbor Helm 仓库
helm repo add harbor https://helm.goharbor.io
helm repo update
- 导出默认 values,修改
helm show values harbor/harbor > harbor-values.yml
## 内容修改如下
expose:
ingress:
hosts:
core: hub.yiqisoft.cn
externalURL: https://hub.yiqisoft.cn
persistentVolumeClaim:
registry:/exter
existingClaim: "nfs-pvc"
storageClass: "-"
database:
type: external
external:
host: "192.168.198.100"
port: "5432"
username: "k3s"
password: "talent"
coreDatabase: "harbor"
harborAdminPassword: "Harbor12345"
- 安装 Harbor,需要通过互联网下载所有的镜像,时间根据网络带宽决定
helm install harbor harbor/harbor -f harbor-values.yml -n harbor
- 确认 Harbor 是否安装成功
kubectl get pods -n harbor
都显示 READY 即可
NAME READY STATUS RESTARTS AGE
harbor-core-666cf84bc6-vq8mp 1/1 Running 0 85s
harbor-jobservice-c68bc669-6twbp 1/1 Running 0 85s
harbor-portal-d6c99f896-cq9fx 1/1 Running 0 85s
harbor-redis-0 1/1 Running 0 84s
harbor-registry-5984c768c8-4xnrg 2/2 Running 0 84s
harbor-trivy-0 1/1 Running 0 84s
- 验证 Harbor 工作状态
curl -k https://hub.yiqisoft.com/v2/ -u admin:Harbor12345
提示 {}
证明成功
{}
以下在 database
主机上运行
- 登录 Harbor
docker login hub.yiqisoft.com -u admin -p Harbor12345
登录成功
Login Succeeded
- 上传已经存在的 PostgreSQL image 测试
docker tag postgres:alpine hub.yiqisoft.com/library/postgres:alpine
docker push hub.yiqisoft.com/library/postgres:alpine
结果显示
The push refers to repository [hub.yiqisoft.com/library/postgres]
284f9fec9bcb: Pushed
07188499987f: Pushed
...
63ca1fbb43ae: Pushed
alpine: digest: sha256:f0407919d966a86e9***c81641801e43c29b size: 2402
批量上传
所需 image 到 Harbor
在准备好 docker image 的机器上运行
- 导出需要的 image
docker images --format "{{.Repository}}:{{.Tag}}" |grep yiqisoft.com > images.txt
- 新建 /etc/docker/daemon.json,跳过安全证书
{
"insecure-registries" : [ "0.0.0.0/0" ]
}
- 重启 docker
systemctl restart docker
- 新建一个脚本 push-images.sh
##!/bin/bash
## Check if the correct number of arguments is provided
if [ $# -ne 1 ]; then
echo "Usage: $0 <path_to_images_file>"
exit 1
fi
## Assign the first argument to the file variable
file=$1
## Check if the file exists
if [ ! -f "$file" ]; then
echo "File not found: $file"
exit 1
fi
while read image; do
echo "Pushing image: $image"
docker push $image
if [ $? -eq 0 ]; then
echo "Successfully pushed $image"
else
echo "Failed to push $image"
fi
done < "$file"
- 登录 Harbor 并上传: push image
docker login hub.yiqisoft.com -u admin -p Harbor12345
bash push-images.sh images.txt
- 查看 Harbor Registry 仓库结果
curl -k https://hub.yiqisoft.com/v2/_catalog -u admin:Harbor12345 |json_pp
结果显示
{
"repositories" : [
"edgexfoundry/app-service-gateway",
"edgexfoundry/consul",
"edgexfoundry/core-command",
"edgexfoundry/core-common-config-bootstrapper",
"edgexfoundry/core-data",
"edgexfoundry/core-metadata",
"edgexfoundry/device-modbus",
"edgexfoundry/device-onvif-camera",
"edgexfoundry/device-openvino-face-recognition",
"edgexfoundry/device-openvino-object-detection",
"edgexfoundry/edgex-ui",
"edgexfoundry/redis",
"edgexfoundry/support-notifications",
"edgexfoundry/support-scheduler",
"library/hello-world",
"library/postgres",
"rancher/system-agent",
"yiqisoft/media_server",
"yiqisoft/model_server",
"yiqisoft/nginx",
"yiqisoft/nvr"
]
}
部署 K3S 业务集群
以下操作注意:全部在
新建的业务集群
中操作
所有的 Master 和 Worker 都加入业务集群
Rancher 中创建一个新的集群
- Rancher UI 操作(
省略
), Cluster Name:yiqisoft
, Kubernetes Version:1.30.4+k3s1
Master 加入集群(初始化业务集群
)
-
通过新集群的
Registration
加入,可以自定义一个 namespace。需要几个 Master 根据自己业务需要来定。 -
导入 hub CA
echo | openssl s_client -showcerts -connect hub.yiqisoft.com:443 2>/dev/null | \
openssl x509 -outform PEM > /etc/ssl/certs/hub.yiqisoft.com.crt
- 分别在 master151-master153 主机上执行,
主机名不能重复
curl --insecure -fL https://rancher.yiqisoft.com/system-agent-install.sh | \
sudo sh -s - --server https://rancher.yiqisoft.com --label 'cattle.io/os=linux' \
--token xft4fsrjgkn4rzqxrgrb4mztkcxtz4nhpwm58t84q54lvpsscdgd72 \
--ca-checksum 30d78ad0ece6355c40a4b3764ba02dfc96388a9c20f6b4e2bffb131cf7402c1f \
--etcd --controlplane --worker
- 查看业务集群 node
kubectl get nodes
确认 Master 都在线
NAME STATUS ROLES AGE VERSION
master151 Ready control-plane,etcd,master,worker 32m v1.30.4+k3s1
master152 Ready control-plane,etcd,master,worker 3h39m v1.30.4+k3s1
master153 Ready control-plane,etcd,master,worker 23m v1.30.4+k3s1
Worker 加入业务集群
- 首先通过 curl 直接输出 hub 证书到主机证书目录
containerd 拉取 image 时需要信任此证书 CA
echo | openssl s_client -showcerts -connect hub.yiqisoft.com:443 2>/dev/null | \
openssl x509 -outform PEM > /etc/ssl/certs/hub.yiqisoft.com.crt
-
需要等 Master 加入成功后(
至少一个成功注册
),Worker 主机再次通过Registration
加入,只需要选择Worker
即可,需要定义一个namespace
label, 比如: namespace=worker01,以后可单独部署到独立应用
到 namespace 作为隔离使用。 -
在所有业务 Worker 上执行,同样注意
主机名不能重复
curl --insecure -fL https://rancher.yiqisoft.com/system-agent-install.sh | \
sudo sh -s - \
--server https://rancher.yiqisoft.com \
--label 'cattle.io/os=linux' \
--token xft4fsrjgkn4rzqxrgrb4mztkcxtz4nhpwm58t84q54lvpsscdgd72 \
--ca-checksum 30d78ad0ece6355c40a4b3764ba02dfc96388a9c20f6b4e2bffb131cf7402c1f \
--worker \
--label namespace=worker161
- 验证 Worker 节点
kubectl get nodes -A
结果正常
NAME STATUS ROLES AGE VERSION
master151 Ready control-plane,etcd,master,worker 74m v1.30.4+k3s1
master152 Ready control-plane,etcd,master,worker 4h21m v1.30.4+k3s1
master153 Ready control-plane,etcd,master,worker 65m v1.30.4+k3s1
worker161 Ready worker 25m v1.30.4+k3s1
(部署/更新
) Harbor hub CA 证书到所有的 Master 和 Worker
(手动操作
)导出 Harbor hub HTTPS 证书
- 增加自签名证书到 ca-certificates 所有的 Master 和 Worker 上执行(不太可行)
echo | openssl s_client -showcerts -connect hub.yiqisoft.com:443 2>/dev/null | \
openssl x509 -outform PEM > /etc/ssl/certs/hub.yiqisoft.com.crt
(自动部署
)Harbor Hub CA 证书
新建一个 Secret
- 在业务集群中,把 Harbor 证书导入集群 kube-system
kubectl create secret generic hub-ca --from-file=ca.crt=/hub.yiqisoft.com.crt -n kube-system
- 查看
kubectl get secret -A |grep hub-ca
结果
NAMESPACE NAME TYPE DATA AGE
kube-system hub-ca kubernetes.io/tls 2 101m
新建一个 DaemonSet
- 新建一个部署文件: ca-distributor.yaml,用于分发 hub 的证书,
非常重要,否则无法从私有 Registry 拉取镜像
。
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ca-distributor
namespace: kube-system
spec:
selector:
matchLabels:
name: ca-distributor
template:
metadata:
labels:
name: ca-distributor
spec:
containers:
- name: ca-distributor
image: busybox:latest
command:
- /bin/sh
- -c
- "cp /etc/ca-certificates/tls.crt /etc/ssl/certs/hub.yiqisoft.cn.crt && echo 'Certificate Updated' && sleep 3600"
volumeMounts:
- name: ca-cert
mountPath: /etc/ca-certificates
- name: ssl-certs
mountPath: /etc/ssl/certs
volumes:
- name: ca-cert
secret:
secretName: hub-ca
- name: ssl-certs
hostPath:
path: /etc/ssl/certs
type: Directory
restartPolicy: Always
- 部署 yaml
kubectl apply -f ca-distributor.yaml
- 验证结果,确保所有的节点都执行成功。
kubectl get pods -A |grep ca-distributor
kube-system ca-distributor-ckhgh 1/1 Running 0 100s
kube-system ca-distributor-hqzwt 1/1 Running 0 101s
kube-system ca-distributor-lj72n. 1/1 Running 0 101s
kube-system ca-distributor-mpp7m 1/1 Running 0 101s
- 在 Worker 上拉取镜像 image
k3s ctr i pull hub.yiqisoft.com/library/hello-world:latest
验证结果
hub.yiqisoft.cn/library/hello-world:latest: resolved |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:d2c94e258dcb3c5ac2798d32e1249e42ef01cba4841c2234249495f87264ac5a: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:c1ec31eb59444d78df06a974d155e597c894ab4cda84f08294145e845394988e: done |++++++++++++++++++++++++++++++++++++++|
elapsed: 0.6 s total: 524.0 (871.0 B/s)
unpacking linux/amd64 sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7...
done: 54.873311ms
基于 K3S 部署业务应用(边缘计算框架
)
以下所有部署都是通过 Helm Chart 工具进行,需要自行编写。
EdgeX Foundry Base
- 部署基本框架结果
kubectl get pods -n worker161
NAME READY STATUS RESTARTS AGE
edgex-core-command-tspw7 1/1 Running 0 5m41s
edgex-core-common-config-bootstrapper-92q25 1/1 Running 0 5m25s
edgex-core-consul-8lqxz 1/1 Running 0 6m4s
edgex-core-data-nv26d 1/1 Running 0 6m23s
edgex-core-metadata-l6c49 1/1 Running 0 5m3s
edgex-device-onvif-camera-5tt4w 1/1 Running 0 3m26s
edgex-mqtt-broker-j2jdr 1/1 Running 0 81s
edgex-redis-rf4v7 1/1 Running 0 4m50s
edgex-support-notifications-ws6l5 1/1 Running 0 4m28s
edgex-support-scheduler-drx2p 1/1 Running 0 3m56s
edgex-ui-v55vm 1/1 Running 0 3m45s
部署辅助应用:流媒体,推理服务器,NVR
- 部署辅助应用 业务 pod 之间有依赖关系,需等待其他 pod 起来才能工作,会不断的重试
kubectl get pods -n worker161 |grep -v edgex
结果
NAME READY STATUS RESTARTS AGE
media-server-wtjxk 1/1 Running 1 (5m29s ago) 13m
model-server-9fpb2 1/1 Running 0 89s
nvr-gqlst 1/1 Running 2 (5m29s ago) 11m
部署 OpenVINO AI 应用
- 部署基于 OpenVINO 推理框架的 AI 应用 pod
kubectl get pods -n worker161 |grep openvino
结果
NAME READY STATUS RESTARTS AGE
edgex-device-openvino-face-recognition-bgch4 1/1 Running 0 5m43s
edgex-device-openvino-object-detection-tbvwk 1/1 Running 0 7m21s
关于我们
亿琪软件
上海亿琪软件有限公司,全球开放边缘计算和物联网领域的领导者,全球领先的工业物联网软件开发商和解决方案提供商,助力企业和组织实现数字化转型。公司专注于 5G 通信、AI 人工智能、边缘计算和大数据网络安全多项技术领域,致力于物联网领域前沿技术的创新,为用户提供全方位、智能化和安全的物联网解决方案。
-
2023 年,公司发布“ YiFUSION |工业边缘智能融合网关 ”产品,为工业客户提供一整套的边缘计算+AI 能力:高性能数据采集、多类型数据融合、AI 算法集成、云端业务对接。在边缘网关的基础上,集成了 IoT 平台的边缘协同能力、本地 Web SCADA 和 HMI 功能、本地数据存储、边缘 AI 视频分析、行业应用集成等。
-
2022 年,公司推出 “ YiCLOUD |亿琪云 ”一站式物联网应用解决方案。公司的业务涵盖了智慧城市、智慧农业、智能工厂和智慧园区等多个领域,公司软硬件产品和解决方案获得华为技术认证,得到中国移动 OCP 认证,公司还是边缘计算产业联盟 ECC 成员。
联系我们--商业服务
- 网站:http://yiqisoft.cn
- 邮件:support@yiqisoft.cn
- 电话:021-68863086
- 手机:186-1666-9123