我用的是蟒蛇;我试图关闭通过 ThreadPoolExecutor 运行的函数,但关闭崩溃并出现错误:
libgcc_s.so.1 must be installed for pthread_cancel to work
Run Code Online (Sandbox Code Playgroud)
该函数通过以下方式提交:
record_future = self.executor.submit(next,primitive)
Run Code Online (Sandbox Code Playgroud)
primitive是一个迭代器,通常返回一个值,但在某些情况下,它需要等待一段时间才能返回值(因为计算时间长等)。在这些情况下,当我需要关闭正在运行的线程时,我不能等待迭代器完成返回,而需要立即将其关闭。我用以下方法做到了:
executor.shutdown(wait=False)
Run Code Online (Sandbox Code Playgroud)
但是,当执行到这里时,我收到 libgcc 错误。
我尝试通过手动安装来“解决”它:
apt-get install libgcc1:amd64
Run Code Online (Sandbox Code Playgroud)
但没有骰子。我不确定 python 到底在哪里寻找这个库,否则我会尝试创建一个符号链接,因为该库已经安装在:
$ /sbin/ldconfig -p | grep libgcc
libgcc_s.so.1 (libc6,x32) => /usr/libx32/libgcc_s.so.1
libgcc_s.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libgcc_s.so.1
libgcc_s.so.1 (libc6) => /usr/lib32/libgcc_s.so.1
Run Code Online (Sandbox Code Playgroud) 我搞乱了 WSL Linux (Ubuntu 16.04.5 LTS) 上的 docker 安装。我尝试卸载它,但它拒绝让步。以下是问题:
\n\n首先检查docker是否存在:
\n\n$ dpkg -l | grep -i docker\npFR docker-ce 5:18.09.4~3-0~ubuntu-xenial amd64 Docker: the open-source application container engine\nRun Code Online (Sandbox Code Playgroud)\n\n尝试删除 docker-ce:
\n\n$ sudo apt-get purge -y docker-ce\nReading package lists... Done\nBuilding dependency tree\nReading state information... Done\nThe following packages will be REMOVED:\n docker-ce*\n0 upgraded, 0 newly installed, 1 to remove and 146 not upgraded.\n1 not fully installed or removed.\nAfter this operation, 85.4 MB disk space will be freed.\ndpkg: error processing package …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用单个 Service yaml 设置对多个节点上的 Pod 的访问。Pod 都具有相同的标签(例如label:app),但分布在多个节点上,而不是分布在单个节点上。
据我所知,我可以设置一个 Service 通过 NodePort 转发对 Pod 的访问,例如:
spec:
type: NodePort
selector:
label: app
ports:
targetPort: 5000
nodePort: 30000
Run Code Online (Sandbox Code Playgroud)
其中,访问节点上的端口 30000 会转发到 pod 上的端口 5000。
如果我在多个节点上有 pod,客户端是否可以访问单个端点(例如服务本身)以循环方式获取任何 pod?或者客户端是否需要使用该节点的 IP 来访问特定节点上的一组 pod,如图所示xx.xx.xx.xx:30000?
我正在按照此处的教程(https://kubernetes.io/docs/tutorials/hello-minikube/)来测试 kubernetes 的本地开发设置。但是,我使用的是 kind,而不是 minikube。
\n目前,我陷入了第3步:
\nminikube service hello-node\nRun Code Online (Sandbox Code Playgroud)\n它应该公开 LoadBalancer 服务。
\n但是,kind 似乎没有这样的命令,我想知道如何从教程中公开该服务。
\n我的设置是带有 docker、kind 和 kubectl 的 WSL2 发行版。我当前的端口桥是:
\n$ docker ps\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\nb62c43ac3b2e kindest/node:v1.17.0 "/usr/local/bin/entr\xe2\x80\xa6" 49 minutes ago Up 49 minutes 127.0.0.1:32769->6443/tcp kind-control-plane\nRun Code Online (Sandbox Code Playgroud)\n$ kubectl cluster-info\nKubernetes master is running at https://127.0.0.1:32769\nKubeDNS is running at https://127.0.0.1:32769/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy\nRun Code Online (Sandbox Code Playgroud)\n和
\n$ kubectl get services\nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\nhello-node LoadBalancer 10.96.65.157 <pending> 8080:31578/TCP 46m\nkubernetes ClusterIP …Run Code Online (Sandbox Code Playgroud)