我有一个本地 Kubernetes 集群,最近它需要物理重启所有工作节点(运行三个工作节点)。当 Pod 重新启动时,我注意到所有 Pod 都安排在一个物理工作节点上,而不是均匀分布在三个工作节点上。我假设其他两个工作节点需要更长的时间才能从重启中恢复在线,而 Kubernetes 只是将我们所有的应用程序安排在唯一的工作节点上。
部署 yaml 中是否有办法指定所有部署副本最终应分布在所有工作节点上?IE 阻止 Kubernetes 在单个工作节点上启动所有 pod?
我有一个本地 Kubernetes 集群,最近它需要物理重启所有工作节点(运行三个工作节点)。当 Pod 重新启动时,我注意到所有 Pod 都安排在一个物理工作节点上,而不是均匀分布在三个工作节点上。我假设其他两个工作节点需要更长的时间才能从重启中恢复在线,而 Kubernetes 只是将我们所有的应用程序安排在唯一的工作节点上。
部署 yaml 中是否有办法指定所有部署副本最终应分布在所有工作节点上?IE 阻止 Kubernetes 在单个工作节点上启动所有 pod?
如何以递归方式删除名称以开头的所有目录,app-deployment-*
但具有名称的特定目录除外app-deployment-245a578
。IE 使用全局匹配删除所有目录,但不删除特定的已知命名目录。
rm -rf app-deployment-* # except app-deployment-245a578
我有一个 shell 脚本,它通过 SSH 连接到同一主机(我的服务器)并在整个脚本中混合运行各种命令。例如:
ssh -o ConnectTimeout=3 -o ConnectionAttempts=3 user@my-server "foocommand here"
mkdir -p /path/here
touch service.conf
...
ssh -o ConnectTimeout=3 -o ConnectionAttempts=3 user@my-server "barcommand here"
mkdir -p /other/path/here
touch /other/path/here/service.conf
...
ssh -o ConnectTimeout=3 -o ConnectionAttempts=3 user@my-server "darcommand here"
等等。问题是每个 SSH 连接打开并且握手需要一些时间,因为服务器my-server
在地理上远离正在运行的脚本。
有没有办法加快这个过程并防止为每个必需的命令打开新的 SSH 连接?像http这样的东西可以让SSH保持活动状态吗?
我正在我们的 AWS 账户中创建一个新的 VPC,因为必须更改本地 CIDR 以支持 VPC 跨区域对等互连。我有需要迁移到新 VPC 的公共 EIP。是否可以将现有的公共 EIP 从一个 VPC 迁移到另一个 VPC?
我正在寻找一个要执行的内联命令/bin/first
,然后在它完成后并行执行以下/bin/p1
, /bin/p2
, /bin/p3
。
我正在尝试下载一个大小为.tar.gz
( > 2GB)的大文件。bash 脚本还做了很多其他事情,所以我想开始下载,然后继续处理 bash 脚本中的其他命令。我正在使用wget
和管道连接tar
并在后台运行它&
。
wget -q "https://download-of-large-file-here.tar.gz" | tar xz &
# other commands here
然而,这打破了:
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
知道如何进行这项工作吗?
我正在尝试为连续运行的一系列命令创建多路复用 ssh 连接,然后在完成一系列命令后,关闭多路复用会话。
根据文档,第一个连接应该启动控制主机:
ssh -o "ControlMaster=auto" -S /home/justin/.ssh/sockets/multiplex_ssh.sock [email protected] "uptime"
然后剩下的命令只需要通过:
ssh -S /home/justin/.ssh/sockets/multiplex_ssh.sock [email protected] "free -m"
ssh -S /home/justin/.ssh/sockets/multiplex_ssh.sock [email protected] "hostname"
ssh -S /home/justin/.ssh/sockets/multiplex_ssh.sock [email protected] "date"
最后,要关闭多路 ssh 会话,我应该能够:
ssh -O exit -S /home/justin/.ssh/sockets/multiplex_ssh.sock [email protected]
不幸的是,当将命令传递给 ssh 时,运行的第一个 ssh 命令ControlMaster=auto
不会使目录中的套接字保持活动状态。/home/justin/.ssh/sockets
相反,它会立即关闭套接字。
这怎么可能?
在 CentOS 6.5 上,/etc/pki/tls/certs
我有:
ca-bundle.crt
和
ca-bundle.trust.crt
具有不同的文件大小。我应该使用哪个作为nginx proxy_ssl_trusted_certificate
的信任路径。
linux中切换用户有什么区别:
su root
和
su -
我注意到来自Google Public DNS 的非常奇怪但一致的性能行为8.8.8.8
。即使缓存了 DNS 记录,响应时间也在 20 的范围内20-30ms
,这似乎很高。当我切换到OpenDNS时,缓存的响应时间下降到1ms
. 不用说,只是将所有服务器都切换到 OpenDNS。任何人都可以从 Google 公共 DNS 中解释这种糟糕的性能行为吗?
以下是每个测试用例的dig输出:
➜ ~ dig @8.8.8.8 commando.io
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> @8.8.8.8 commando.io
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 655
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;commando.io. IN A
;; ANSWER SECTION:
commando.io. 300 IN A 192.241.225.51
;; Query time: 389 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 22 12:08:37 2013
;; MSG SIZE rcvd: 45
➜ ~ dig @8.8.8.8 commando.io
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> @8.8.8.8 commando.io
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55425
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;commando.io. IN A
;; ANSWER SECTION:
commando.io. 295 IN A 192.241.225.51
;; Query time: 24 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Sep 22 12:08:42 2013
;; MSG SIZE rcvd: 45
➜ ~ dig commando.io
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> commando.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49578
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;commando.io. IN A
;; ANSWER SECTION:
commando.io. 300 IN A 192.241.225.51
;; Query time: 46 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Sun Sep 22 12:09:43 2013
;; MSG SIZE rcvd: 45
➜ ~ dig commando.io
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> commando.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42532
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;commando.io. IN A
;; ANSWER SECTION:
commando.io. 273 IN A 192.241.225.51
;; Query time: 1 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Sun Sep 22 12:10:10 2013
;; MSG SIZE rcvd: 45
我通过简单地为 CentOS 上的用户设置了一个环境变量:
1.) 使用用户登录
2.) 转到他们的主目录cd ~
并创建一个文件.profile
3.) 将以下内容放入.profile
文件中:
export APP="dev"
但是,当我:
echo $APP
它是空白的。我已经尝试关闭我的 SSH 会话并重新连接,仍然是同样的问题。
我试图通过 ssh 在远程服务器上执行 MySQL 查询。这是我的命令:
ssh -p 2020 [email protected] 'mysql --compress --secure-auth --database operations --execute \'INSERT INTO `ops`.`accounts` (`alias`, `id`, `web_server`, `mysql_server`) VALUES (\'thisisatest\', \'act_67vhVnS30bV\', \'web2\', \'mysql1\');\''
那应该是正确的,但我得到:
bash: syntax error near unexpected token `('
有任何想法吗?
从命令行从 Web 服务器运行 SQL 命令到远程 MySQL 服务器的最安全方法是什么。我可以想到两种方法:
mysql --host mysql.mydomain.com --user admin --password the-password-here --execute "SOME SQL"
或者:
ssh [email protected] 'mysql --user admin --password the-password-here --execute "SOME SQL"'
这两种方法都需要在命令行上发送密码,这让我很担心。这样做的最佳做法和最安全的方法是什么。
谢谢。
我nginx
可以指定Access-Control-Allow-Origin
使用通配符*.mydomain.com
吗?
它看起来像:
add_header Access-Control-Allow-Origin *.mydomain.com;
谢谢。
我正在尝试chown
在具有以下权限和所有者的目录上执行:
drwxrwxr-x 2 justin devs 4096 Jan 1 20:42 test
我试图以justin
用户身份简单地执行以下操作:
chown justin:nginx test
所以基本上只是将组所有者更改为nginx
,但我得到:
chown: changing ownership of `test/': Operation not permitted
有任何想法吗?
我可以将 shell 命令放在/etc/motd
登录横幅文件中吗?我努力了:
$(uptime)
和
`uptime`
这可能吗?
我正在尝试设置一个副本集,但是当我发出:
rs.initiate()
在第一台服务器上,我收到以下错误:
{ "errmsg" : "need to login", "ok" : 0 }
不过这很奇怪,因为在我的配置auth: true
中被注释掉了。
有任何想法吗?
在 Linux CentOS 中如何查看我的分区是主分区还是辅助分区?我试过df -T
了,但它没有显示分区是主分区还是辅助分区。
logrotate
CentOS 6.3 中究竟调用了什么?我看了里面,/etc/init.d
但没有与 logrotate 相关的内容。此外,crontab
对于root
用户而言,没有任何内容。
谢谢。
可能重复:
如何找出正在运行的 Linux 版本?
在任何服务器上安装 linux 风格的最佳方法是什么?例如,如果服务器是 RedHat 或 CentOS,我可以简单地执行以下操作:
cat /etc/redhat-release
CentOS release 6.3 (Final)
所有其他主要发行版在哪里存储它们的详细信息文件?谢谢。