我的网络中有六台台式机,我想构建两个 Kubernetes 集群。每台机器都安装了 Ubuntu 16.04 LTS。最初,所有机器都是一个集群的一部分。但是,我删除了三台机器来设置另一个集群,并在每台机器上执行以下命令:
RESET COMMAND:
sudo kubeadm reset -f &&
sudo systemctl stop kubelet &&
sudo systemctl stop docker &&
sudo rm -rf /var/lib/cni/ &&
sudo rm -rf /var/lib/kubelet/* &&
sudo rm -rf /etc/cni/ &&
sudo ifconfig cni0 down &&
sudo ifconfig flannel.1 down &&
sudo ifconfig docker0 down &&
sudo ip link delete cni0 &&
sudo ip link delete flannel.1
Run Code Online (Sandbox Code Playgroud)
在此之后,我重新启动了每台机器,并通过设置主节点继续设置新集群:
INSTALL COMMAND:
sudo kubeadm init phase certs all &&
sudo kubeadm init phase kubeconfig all …Run Code Online (Sandbox Code Playgroud) 我已经使用 Docker 有一段时间了,我已经安装了 docker 并使用启动了一个容器
docker run -it --cpuset-cpus=0 ubuntu
Run Code Online (Sandbox Code Playgroud)
当我登录 docker 控制台并运行时
grep processor /proc/cpuinfo | wc -l
Run Code Online (Sandbox Code Playgroud)
它显示了 3,这是我在主机上拥有的核心数。
关于如何将资源限制到容器以及如何验证限制的任何想法?
要求是每秒1000个并发请求和每个请求的数据库查询等IO操作。由于 nodejs 在事件循环上工作,它将 IO 操作分配给线程池,但线程池默认大小为 4,因此同时最多 4 个线程(IO 操作)可以工作,其余必须在队列中等待。一旦任何线程完成执行,它们就可以进行处理。
查询 1 - 我们可以根据需要将线程池大小增加到 N 数,它会提高性能还是会降低性能?
查询 2 - 我们如何在 nodejs 中实现上述要求?
查询 3 - Nodejs 是此要求或其他建议(例如 golang)的空闲选择
我不明白为什么我的Google Cloud Run实例不知道__dirname是什么
我有一个expressjs服务器,里面有这个:
import path from 'path';
const App = express()
.get('/*', (_req, res) => {
res.sendFile(path.join(__dirname, '.', 'index.html'));
})
Run Code Online (Sandbox Code Playgroud)
我收到编译错误__dirname is not defined
我正在Docker容器中运行node js官方映像,我注意到npm start命令比在Docker之外启动命令需要更长的时间.
我可以更改设置以使其运行更快吗?也许为容器分配更多内存?
作为参考,我将在下面粘贴相关文件.
Dockerfile:
FROM node:8.1
WORKDIR var/www/app
# Global install yarn package manager
RUN apt-get update && apt-get install -y curl apt-transport-https && \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update && apt-get install -y yarn
RUN npm install -g create-react-app
Run Code Online (Sandbox Code Playgroud)
我用来启动容器的命令:
docker run --rm -ti \
--link api-container:api \
--name my-container -p 3000:3000 \
-v $(pwd):/var/www/app nxmohamad/my-container \
bash
Run Code Online (Sandbox Code Playgroud)
并且启动脚本就是 NODE_PATH=. react-scripts …
我在一夜之间在 Kubernetes 中运行了一项工作。当我早上检查它时,它失败了。通常,我会检查 pod 日志或事件以确定原因。但是,该 pod 已被删除,并且没有任何事件。
kubectl describe job topics-etl --namespace dnc
Run Code Online (Sandbox Code Playgroud)
这是describe输出:
Name: topics-etl
Namespace: dnc
Selector: controller-uid=391cb7e5-b5a0-11e9-a905-0697dd320292
Labels: controller-uid=391cb7e5-b5a0-11e9-a905-0697dd320292
job-name=topics-etl
Annotations: kubectl.kubernetes.io/last-applied-configuration:
{"apiVersion":"batch/v1","kind":"Job","metadata":{"annotations":{},"name":"topics-etl","namespace":"dnc"},"spec":{"template":{"spec":{"con...
Parallelism: 1
Completions: 1
Start Time: Fri, 02 Aug 2019 22:38:56 -0500
Pods Statuses: 0 Running / 0 Succeeded / 1 Failed
Pod Template:
Labels: controller-uid=391cb7e5-b5a0-11e9-a905-0697dd320292
job-name=topics-etl
Containers:
docsund-etl:
Image: acarl005/docsund-topics-api:0.1.4
Port: <none>
Host Port: <none>
Command:
./create-topic-data
Requests:
cpu: 1
memory: 1Gi
Environment:
AWS_ACCESS_KEY_ID: <set to the key 'access_key_id' in secret …Run Code Online (Sandbox Code Playgroud) 我正在使用 Node.js 和 socket.io 实现一个简单的聊天应用程序,想知道在整个对象中共享所有客户端的套接字 ID 是否被认为是一个好的做法?
为了解释一下,我的每个用户都是这样表示的:
{
nick : 'John Doe',
dateJoined : Date.now(),
rank : 0,
id : socket.id
}
Run Code Online (Sandbox Code Playgroud)
我所有客户的列表都存储在服务器上const usersList = [ {...}, {...}, ... ]
我的所有客户都需要查看谁已连接,因此usersList应将其共享给所有客户。
如果客户端断开连接,则应通知所有客户端此 #ID 已断开连接:
socket.on('userDisconnect', function(id) {
clientSideList = clientSideList.filter( user => user.id !== id );
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如果每个客户端都知道其他客户端的套接字 ID,这是否会出现安全问题?他们会做出一些令人讨厌的事情,比如窃取数据或冒充其他用户吗?
感谢您的帮助
我有一个简单的 docker 文件来在 alpine 中运行 Flask Web 框架。
FROM python:2.7-alpine
RUN mkdir /app
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
LABEL maintainer="Test Test <test@gmail.com>" \
version="1.0"
CMD flask run --host=0.0.0.0 --port=5000
Run Code Online (Sandbox Code Playgroud)
并构建了如下所示的 docker 镜像
docker 镜像构建 -t web1 .
并能够看到在每个层中创建和删除的中间容器(除了 WORKDIR /app )。但是当我检查使用
docker 镜像检查 web1
我得到了 8 层而不是 7 层。第 8 层从哪里来?
docker ×4
node.js ×3
kubernetes ×2
chat ×1
containers ×1
docker-image ×1
dockerfile ×1
event-loop ×1
express ×1
javascript ×1
socket.io ×1
sockets ×1
threadpool ×1