我有一个 docker 镜像,我需要在其中安装 openCV,从昨天开始它开始失败,因为它找不到“skbuild”模块:
Step 12/24 : RUN pip install opencv-python opencv-contrib-python
---> Running in a0f746a23aed
Collecting opencv-python
Downloading https://files.pythonhosted.org/packages/77/f5/49f034f8d109efcf9b7e98fbc051878b83b2f02a1c73f92bbd37f317288e/opencv-python-4.4.0.42.tar.gz (88.9MB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-cciracwm/opencv-python/setup.py", line 9, in <module>
import skbuild
ModuleNotFoundError: No module named 'skbuild'
Run Code Online (Sandbox Code Playgroud)
在主机上,我也找不到该模块,pip search要么不返回任何内容,要么返回服务器错误:
sudo pip3 search skbuild
WARNING: The directory '/home/ali/.cache/pip' or its parent directory is not owned or is not writable by the current user. The …Run Code Online (Sandbox Code Playgroud) 我想给我的应用程序有限的访问权限来获取不同状态集(可能还有部署)的副本,并在必要时扩大或缩小它们。
我为此创建了 ServiceAccount、Rolebinding 和 Role,但我找不到规则动词的完整列表(“get”、“watch”、“list”、“update”)以及它们的限制是什么,例如我可以使用update用于缩放还是我需要另一个动词?我在哪里可以找到描述这些动词的列表或表格?
我的 yaml 文件:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: scaler-role
namespace: {{ .Release.Namespace | quote }}
rules:
- apiGroups: ["apps"]
resources: ["statefulset"]
verbs: ["get", "watch", "list", "update"]
Run Code Online (Sandbox Code Playgroud) 我需要npm login在脚本中传递凭据有没有办法提供类似于 git 凭据的凭据?
git clone https://username:password@github.com
Run Code Online (Sandbox Code Playgroud) 我需要在正在运行的容器中安装简单的包,例如curl,但我遇到了这个错误:
~ $ apk add curl
ERROR: Unable to lock database: Permission denied
ERROR: Failed to open apk database: Permission denied
Run Code Online (Sandbox Code Playgroud)
我知道如何在 Dockerfile 中更改用户,但我无权访问 docker 文件,并且我需要在容器内或在容器内打开终端时执行此操作。我尝试使用--user=但没有成功:
kubectl exec -n kube-system --user="root" -it tiller-deploy-75f6c87b87-xtpxl /bin/ash
error: auth info "root" does not exist
Run Code Online (Sandbox Code Playgroud)
我如何获得root访问权限或安装curl?
我想知道如何按特定顺序开始部署。我知道,initContainers但这对我不起作用。我有一个巨大的平台,有大约 20 个部署和 5 个状态集,每个都有自己的服务、环境变量、卷、水平自动缩放器等。所以不可能(或者我不知道如何)在另一个中定义它们yaml 部署为initContainers.
是否还有其他选项可以按特定顺序启动部署?
我想使用 RabbitMQ 的 Helm chart 来设置集群,但是当我尝试将我们目前拥有的配置文件传递给 values.yaml 时,它不起作用。
我使用的命令:
helm install --dry-run --debug stable/rabbitmq --name testrmq --namespace rmq -f rabbit-values.yaml
Run Code Online (Sandbox Code Playgroud)
兔子值.yaml:
rabbitmq:
plugins: "rabbitmq_management rabbitmq_federation rabbitmq_federation_management rabbitmq_shovel rabbitmq_shovel_management rabbitmq_mqtt rabbitmq_web_stomp rabbitmq_peer_discovery_k8s"
advancedConfiguration: |-
{{ .Files.Get "rabbitmq.config" | quote}}
Run Code Online (Sandbox Code Playgroud)
我得到了什么advancedConfiguration:
NAME: testrmq
REVISION: 1
RELEASED: Thu Aug 29 10:09:26 2019
CHART: rabbitmq-5.5.0
USER-SUPPLIED VALUES:
rabbitmq:
advancedConfiguration: '{{ .Files.Get "rabbitmq.config" | quote}}'
plugins: rabbitmq_management rabbitmq_federation rabbitmq_federation_management
rabbitmq_shovel rabbitmq_shovel_management rabbitmq_mqtt rabbitmq_web_stomp rabbitmq_peer_discovery_k8s
Run Code Online (Sandbox Code Playgroud)
我不得不提的是:
indent 4 …我刚刚创建了一个新的 Helm 图表,但是当我运行时 helm install --dry-run --debug我得到:
错误:多相机跟踪/模板/多相机跟踪.yaml 上的 YAML 解析错误:将 YAML 转换为 JSON 时出错:yaml:第 30 行:未找到预期的键
这是我的 Yaml 文件:
---
# apiVersion: apps/v1beta1
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: multi-camera-tracking
annotations:
Process: multi-camera-tracking
labels:
io.kompose.service: multi-camera-tracking
spec:
serviceName: multi-camera-tracking
replicas: 1
selector:
matchLabels:
io.kompose.service: multi-camera-tracking
podManagementPolicy: "Parallel"
template:
metadata:
labels:
io.kompose.service: multi-camera-tracking
spec:
containers:
- name: multi-camera-tracking
env:
- name: MCT_PUB_PORT
value: {{ .Values.MCT_PUB_PORT | quote }}
- name: SCT_IP_ADDR_CSV
value: {{ .Values.SCT_IP_ADDR_CSV | quote }}
- name: …Run Code Online (Sandbox Code Playgroud) 我正在从 minikube 迁移到 Microk8s,我想更改 Microk8s 的配置并控制它可以使用的资源(cpu、内存等)。
在 minikube 中,我们可以使用如下命令来设置 minikube 的资源量:
minikube config set memory 8192
minikube config set cpus 2
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在Microk8s中做到这一点。我使用了以下命令(有和没有 sudo):
microk8s.config set cpus 4
microk8s.config set cpu 4
Run Code Online (Sandbox Code Playgroud)
他们回来了:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: VORCBDRVJUSUZJQ0FURS0tLS0...
server: https://10.203.101.163:16443
name: microk8s-cluster
contexts:
- context:
cluster: microk8s-cluster
user: admin
name: microk8s
current-context: microk8s
kind: Config
preferences: {}
users:
- name: admin
user:
username: admin
password: ...
Run Code Online (Sandbox Code Playgroud)
但是当我获得该节点的描述时,我看到 Microk8s 正在使用 8 个 cpu:
Capacity:
cpu: 8
ephemeral-storage: 220173272Ki
hugepages-1Gi: 0 …Run Code Online (Sandbox Code Playgroud) 我们在 K8s 上运行的平台有不同的组件。我们需要在其中两个组件(comp-A 和 comp-B)之间共享存储,但我们错误地为此定义了 PV 和 PVC ReadWriteOnce,即使这两个组件在不同的节点上运行,一切正常,我们能够从两个组件读取和写入存储。
根据 K8s 文档,ReadWriteOnce可以挂载到一个节点,我们必须使用ReadWriteMany:
所以我想知道为什么一切正常,而它不应该?
更多信息:我们使用 NFS 进行存储,我们没有使用动态配置,下面是我们如何定义我们的 pv 和 pvc(我们使用 helm):
- apiVersion: v1
kind: PersistentVolume
metadata:
name: gstreamer-{{ .Release.Namespace }}
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: {{ .Values.global.nfsserver }}
path: /var/nfs/general/gstreamer-{{ .Release.Namespace }}
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gstreamer-claim
namespace: {{ .Release.Namespace }}
spec: …Run Code Online (Sandbox Code Playgroud) 我正在创建一个包含许多配置映射(20+)的 helm 图表,每次启动它时,pod 都会崩溃,并且当我运行时,kubectl describe它充满了如下警告:
Warning FailedMount 24m kubelet, A-p51 MountVolume.SetUp failed for volume "bridge-dep" : failed to sync configmap cache: timed out waiting for the condition
Warning FailedMount 24m kubelet, A-p51 MountVolume.SetUp failed for volume "dashboard-hpa" : failed to sync configmap cache: timed out waiting for the condition
Warning FailedMount 24m kubelet, A-p51 MountVolume.SetUp failed for volume "dashboard-crb" : failed to sync configmap cache: timed out waiting for the condition
Warning FailedMount 24m kubelet, A-p51 MountVolume.SetUp failed …Run Code Online (Sandbox Code Playgroud) kubernetes ×7
alpine-linux ×1
command-line ×1
configmap ×1
containers ×1
deployment ×1
docker ×1
microk8s ×1
minikube ×1
npm ×1
npm-login ×1
opencv ×1
pip ×1
python ×1
rabbitmq ×1
rbac ×1
shell ×1
terminal ×1
yaml ×1