我在ECS服务器上运行docker-nginx.我的nginx服务突然停止,因为其中一个服务器的proxy_path无法访问.错误如下:
[emerg] 1#1: host not found in upstream "dev-example.io" in /etc/nginx/conf.d/default.conf:988
Run Code Online (Sandbox Code Playgroud)
我的配置文件如下:
server {
listen 80;
server_name test.com;
location / {
proxy_pass http://dev-exapmle.io:5016/;
proxy_redirect off;
##proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
server {
listen 80 default_server;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建IAM角色并根据使用AWS CLI将AWS IAM角色附加到现有Amazon EC2实例将其分配给EC2实例.
该政策如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
Run Code Online (Sandbox Code Playgroud)
}
但它给出了这个错误:
This policy contains the following error: Has prohibited field Principal
Run Code Online (Sandbox Code Playgroud)
这里有一个类似的问题,但它无法解决这个问题.
任何帮助,将不胜感激.
我有带有 kubernetes 版本 1.23 的 AKS。我想通过通过AdmissionConfiguration进行设置来激活集群级别的podsecurity,如下所述:
https://kubernetes.io/docs/tasks/configure-pod-container/enforce-standards-admission-controller/
正如我所读到的,“PodSecurity 功能门”在 kubernetes 版本 1.23 上默认启用。我已经根据链接上显示的配置创建了一个 yaml 文件,但是当我应用它时,出现以下错误:
$ k create -f podsecurity.yaml
error: unable to recognize "podsecurity.yaml": no matches for kind "AdmissionConfiguration" in version "apiserver.config.k8s.io/v1"
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5",
GitCommit:"c285e781331a3785a7f436042c65c5641ce8a9e9", GitTreeState:"clean", BuildDate:"2022-03-16T15:58:47Z", GoVersion:"go1.17.8", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.5",
GitCommit:"8211ae4d6757c3fedc53cd740d163ef65287276a", GitTreeState:"clean", BuildDate:"2022-03-31T20:28:03Z", GoVersion:"go1.17.8", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了很多,但找不到解决方案或它导致的原因。
如果有人可以提供帮助,我将不胜感激。
我可以在名称空间级别激活它,如下所示: https: //kubernetes.io/docs/tutorials/security/ns-level-pss/ 通过在名称空间下添加标签,但是我想在集群级别激活它但它不起作用。
我将使用 for 循环扫描文件夹中的文件(value-f1.yaml、values-f2.yaml...),每次使用文件名作为变量并在 Azure 管道作业中运行该作业根据该值文件部署 helmchart。该文件夹位于 GitHub 存储库中。所以我在想这样的事情:
管道.yaml
stages:
- stage: Deploy
variables:
azureResourceGroup: ''
kubernetesCluster: ''
subdomain: ''
jobs:
${{ each filename in /myfolder/*.yaml}}:
valueFile: $filename
- template: Templates/deploy-helmchart.yaml@pipelinetemplates
Run Code Online (Sandbox Code Playgroud)
部署-helmchart.yaml
jobs:
- job: Deploy
pool:
vmImage: 'ubuntu-latest'
steps:
- task: HelmInstaller@1
displayName: 'Installing Helm'
inputs:
helmVersionToInstall: '2.15.1'
condition: and(succeeded(), startsWith(variables['build.sourceBranch'], 'refs/tags/v'))
- task: HelmDeploy@0
displayName: 'Initializing Helm'
inputs:
connectionType: 'Azure Resource Manager'
azureSubscription: $(azureSubscription)
azureResourceGroup: $(azureResourceGroup)
kubernetesCluster: $(kubernetesCluster)
command: 'init'
condition: and(succeeded(), startsWith(variables['build.sourceBranch'], 'refs/tags/v'))
- task: PowerShell@2
displayName: …Run Code Online (Sandbox Code Playgroud) 我需要在管道中使用 bash 命令从 Azure 容器注册表 (ACR) 获取最新的映像标签,并使用该标签进行容器部署。以下是我可以使用 Azure cli 找到的内容:
$ az acr repository show-tags --name myacr --repository myrepo --top 1
Run Code Online (Sandbox Code Playgroud)
然而,这返回了我最旧的标签。
如何从 ACR 存储库获取最新推送的标签?
由于无法在 AzurePipeline 中的阶段之间传递变量,因此我尝试在两个作业之间传递变量,如 Azure 文档中所述(https://learn.microsoft.com/en-us/azure/ devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch),但是它没有成功并且返回一个空变量。
这就是我正在尝试的:
stages:
- stage: Deploy
jobs:
- deployment: A
displayName: TerraformDeploy
pool:
vmImage: 'ubuntu-latest'
environment: 'test'
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: Bash@3
displayName: 'Deploying Terraform'
inputs:
targetType: 'inline'
script: |
cd environments/test
terraform init
terraform apply -var 'client_id=$(client-id)' -var 'client_secret=$(client-secret)' -var 'key_data=$(LinuxSSHPubKey)' -var 'tenant_id=$(tenant-id)' -auto-approve
ip=$(terraform output public_ip_address)
echo $ip ###1.2.3.4
echo "##vso[task.setvariable variable=myPubIP;isOutput=true]$ip"
name: setvarStep
- job: B
dependsOn: A
pool:
vmImage: 'ubuntu-latest'
variables:
myIP: $[ dependencies.A.outputs['A.setvarStep.myPubIP'] …Run Code Online (Sandbox Code Playgroud) 我想在AWS上托管数据库.RDS是一种选择,但我听说过容器(和ECS).我认为容器对测试很有用,但我不确定在一个上运行生产数据库.每个人的优点和缺点是什么?
我想将 AWS CLI 的输出保存在一个变量中并在另一个 AWS CLI 中使用该变量,我所做的如下:
taskarn= aws ecs list-tasks --cluster mycluster --service-name "myService" --region "eu-west-1" --output text | grep "arn" | tr -d '"'
echo $taskarn; //empty
aws ecs stop-task --cluster mycluster --task $taskarn --region "eu-west-1"
Run Code Online (Sandbox Code Playgroud)
当我回显 $taskarn 时,它是空的。
任何帮助,将不胜感激。
我正在设置一个多可用区 AKS 集群,我想将我创建的静态公共 IP 分配给此负载均衡器。这是我所拥有的:
#### Creating a Public static IP ####
resource "azurerm_public_ip" "lb-public-ip1" {
name = "${var.public_ip_name}"
location = "${var.location}"
resource_group_name = "${var.resource_group_name}"
allocation_method = "Static"
ip_version = "IPv4"
sku = "standard"
#domain_name_label =
tags = {
Environment = "${var.environment}"
owner = "${var.resource_owner}"
created-by = "${var.policy_created_by}"
}
depends_on = ["null_resource.module_depends_on"]
}
data "azurerm_public_ip" "lb-public-ip1" {
name = "${azurerm_public_ip.lb-public-ip1.name}"
resource_group_name = "${azurerm_public_ip.lb-public-ip1.resource_group_name}"
depends_on = ["null_resource.module_depends_on"]
}
resource "null_resource" "module_depends_on" {
triggers = {
value = "${length(var.module_depends_on)}"
}
}
#### …Run Code Online (Sandbox Code Playgroud) 我们使用Nginx作为docker-cloud服务的反向代理.每当新服务在docker cloud上部署或者服务在docker-cloud上获得新url时,都会实现一个脚本来更新Nginx的配置文件.
Nginx和脚本已分别在docker容器中运行.Nginx配置文件安装在主机(ECS)中.使用脚本更新配置文件后,需要重新加载Nginx才能应用更改.
首先,我想知道这是否是更新Nginx配置文件的最佳方式,以及在没有任何停机时重新加载Nginx的最佳方法是什么?
我应该在每次更新后重新创建Nginx容器吗?如果是这样,怎么样?
或者可以通过监视配置文件中的更改(使用脚本)从主机重新加载Nginx并使用以下命令重新加载它?
docker exec NginxcontainerID | nginx -s reload
Run Code Online (Sandbox Code Playgroud) 我想每小时向外部API(https://example.com/api/jobs/test)发送一个帖子请求.
我使用的Lambda函数如下:
Handler: index.lambda_handler
python: 3.6
Run Code Online (Sandbox Code Playgroud)
index.py
import requests
def lambda_handler(event, context):
url="https://example.com/api/jobs/test"
response = requests.post(url)
print(response.text) #TEXT/HTML
print(response.status_code, response.reason) #HTTP
Run Code Online (Sandbox Code Playgroud)
测试事件:
{
"url": "https://example.com/api/jobs/test"
}
Run Code Online (Sandbox Code Playgroud)
错误:
START RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d Version: $LATEST
Unable to import module 'index': No module named 'requests'
END RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d
REPORT RequestId: 370eecb5-bfda-11e7-a2ed-373c1a03c17d Duration: 0.65 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 21 MB
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
我想用MPI程序获取一些节点,并在每两个节点之间做一些事情.我想知道如何用MPI获取节点(计算机)?任何帮助将是欣赏.
amazon-ecs ×2
azure-aks ×2
azure-devops ×2
docker ×2
nginx ×2
acr ×1
amazon-iam ×1
amazon-rds ×1
aws-cli ×1
aws-lambda ×1
azure ×1
azure-cli ×1
c ×1
docker-cloud ×1
for-loop ×1
http-post ×1
kubernetes ×1
mpi ×1
nodes ×1
python ×1
terraform ×1
variables ×1