我正在尝试从SCM加载Jenkins管道脚本.我必须构建一个docker镜像并将其推送到GCR.在docker镜像中,我需要安装私有git存储库.在这里,我试图从Jenkins输入获取git用户名密码.但我不知道如何在Dockerfile中使用它来拉取git repo.这些是我在SCM中的Jenkinsfile和Dockerfile.有什么建议?
詹金斯文件:
node {
def app
stage('Clone repository') {
checkout scm
def COMMITHASH = sh(returnStdout: true, script: "git log -n 1 --pretty=format:'%h'").trim()
echo ("Commit hash: "+COMMITHASH.substring(0,7))
}
stage('Build image') {
timeout(time: 600, unit: 'SECONDS') {
gitUser = input(
id: 'gitUser',
message: 'Please enter git credentials :',
parameters: [
[$class: 'TextParameterDefinition', defaultValue: "", description: 'Git user name', name: 'username'],
[$class: 'PasswordParameterDefinition', defaultValue: "", description: 'Git password', name: 'password']
])
}
/* Build docker image */
println('Build image stage');
app = …Run Code Online (Sandbox Code Playgroud) 我已经设置了启用了“私有访问”的EKS cluser,并在同一VPC中设置了一个实例以与EKS通信。问题是,如果我启用了“公共访问”,则可以访问api端点。但是,如果我禁用了公共访问权限并启用了私有访问权限,则无法访问api端点。
启用私有访问后:
kubectl get svc
Unable to connect to the server: dial tcp: lookup randomstring.region.eks.amazonaws.com on 127.0.0.53:53: no such host
Run Code Online (Sandbox Code Playgroud)
启用公共访问后:
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 172.20.0.1 <none> 443/TCP 57m
Run Code Online (Sandbox Code Playgroud) 我在 DigitalOcean 中设置了一个 Kubernetes 集群。集群配置为使用 HPA(Horizontal Pod Autoscaler)自动扩展。我想防止终止在过去 1 小时内按比例放大的 pod,以避免颠簸和节省账单。以下是两个相同的原因:
从文档中,我找不到与此相关的任何内容。任何相同的黑客都会有帮助。
我想用一个简单的php应用程序配置一个Wordpress应用程序.应用程序的目录结构如下:
根目录:/ var/www/demoApp /
Wordpress目录:/ var/www/demoApp/wordpress /
在这里,我想使用路由http:// BASE_URL/wordpress访问wordpress应用程序.但我无法配置htaccess文件.使用url http:// BASE_URL /,/ var/www/demoApp /目录下的所有php页面都正常工作.虽然没有正确加载wordpress文件.
这是我的Apache配置块:
<VirtualHost *:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /var/www/demoApp
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/demoApp>
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
什么应该是.htaccess文件?
我正在使用 socket.io 在 AWS Fargate 中运行套接字服务器容器
连接用户数在 800-1000 左右时一切正常,但是当客户端数量增加时,旧套接字连接会自动断开并出现错误transport error。
我的 AWS ECS 服务(Fargate 容器)在 AWS 应用程序负载均衡器后面运行。
需要应用任何特定配置来支持与我的容器的数千个并发连接吗?
连接到单个套接字服务器的并发用户数是否有限制?
AWS任务定义有4GB内存和2个CPU
套接字服务器代码:
io = module.exports = require('socket.io')(server, {
'pingInterval': 10000,
'pingTimeout': 7000,
'origins': (env.APPLY_ALLOW_ORIGIN_FILTER) ? env.SOCKET_WHITELIST_URL : '*:*',
transports: ['websocket', 'htmlfile', 'xhr-polling', 'jsonp-polling', 'polling']
})
Run Code Online (Sandbox Code Playgroud) 我的 ECS 集群中运行着多个服务。每个服务包含一个或多个基于 CPU 利用率或用户数量的任务。我已经使用 EC2 启动类型部署了这些容器。现在,我想根据集群中的可用资源增加/减少 EC2 实例的数量。假设有四个 ECS 任务在两个 m5.large 实例中运行。
现在,如果 ECS 服务增加了任务数量,并且集群中没有足够的可用资源,我如何启动实例并将其添加到集群中?
反之亦然。如果有实例正在运行,但其中没有ecs任务,如何自动销毁它?
PS - 我正在使用 Fargate。由于成本非常高,我转向了 EC2 实例。
我已经使用eks kubernetes集群在AWS中部署了Elastic-search容器。即使只有3个索引并且使用率不高,容器的内存使用量仍在增加。我正在使用FluentD将集群容器日志转储到弹性搜索中。除此之外,没有使用弹性搜索。我尝试使用来应用最小/最大堆大小-Xms512m -Xmx512m。它可以成功应用,但仍会在24小时内使内存使用率几乎翻倍。我不确定还必须配置其他哪些选项。我尝试将docker image从更改elasticsearch:6.5.4为elasticsearch:6.5.1。但是问题仍然存在。我也尝试了-XX:MaxHeapFreeRatio=50Java选项。
编辑:以下是Elastic-search初创公司的日志:
[2019-03-18T13:24:03,119][WARN ][o.e.b.JNANatives ] [es-79c977d57-v77gw] Unable to lock JVM Memory: error=12, reason=Cannot allocate memory
[2019-03-18T13:24:03,120][WARN ][o.e.b.JNANatives ] [es-79c977d57-v77gw] This can result in part of the JVM being swapped out.
[2019-03-18T13:24:03,120][WARN ][o.e.b.JNANatives ] [es-79c977d57-v77gw] Increase RLIMIT_MEMLOCK, soft limit: 16777216, hard limit: 16777216
[2019-03-18T13:24:03,120][WARN ][o.e.b.JNANatives ] [es-79c977d57-v77gw] These can be adjusted by modifying /etc/security/limits.conf, for example:
# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited …Run Code Online (Sandbox Code Playgroud) 我已将 Nginx 设置为反向代理。我将代理指向 java 应用程序。问题是 Nginx504 Timeout while reading response from server在 60 秒后返回。Nginx 或 java 应用程序中没有错误日志。如果我直接点击 java 应用程序,它会为请求提供超过 60 秒的时间,但如果我通过 Nginx 执行此操作,它会在 60 秒后超时。我在 nginx.conf 文件中添加了以下配置。
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
keepalive_timeout 650;
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我将超时设置更改为小于 60 秒,它会按预期工作。我还尝试将 Nginx 指向 NodeJs 应用程序,以确保问题不在 java 应用程序中。行为保持不变。
我还需要修复其他配置吗?
Nginx 版本:1.14.0
PS:我也尝试过使用 kubernetes Nginx ingress。问题仍然相同。
我无法从 Minikube 中删除 kubernetes-dashboard。我尝试多次删除部署“deployment.apps/kubernetes-dashboard”。但它会在几秒钟内自动重新创建。
我正在使用以下命令删除部署:
kubectl 删除 deployment.apps/kubernetes-dashboard -n kube-system
我什至尝试通过将副本计数设置为零来编辑部署。但即使它会在几秒钟后自动重置。
同样的事情发生在 kube-system 中的 nginx-ingress 部署中。
kubernetes ×5
docker ×3
.htaccess ×1
amazon-ec2 ×1
amazon-ecs ×1
amazon-eks ×1
amazon-vpc ×1
apache ×1
autoscaling ×1
aws-ecs ×1
aws-fargate ×1
containers ×1
devops ×1
eks ×1
fluentd ×1
hpa ×1
java ×1
jenkins ×1
minikube ×1
mod-rewrite ×1
nginx ×1
node.js ×1
php ×1
proxy ×1
socket.io ×1
websocket ×1
wordpress ×1