小编Mat*_*rix的帖子

Docker Nginx停止了:[emerg] 1#1:在上游找不到主机

我在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)

nginx amazon-ecs docker

19
推荐指数
2
解决办法
3万
查看次数

AWS Trust Policy已禁止字段Principal

我正在尝试创建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)

这里有一个类似的问题,但它无法解决这个问题.

任何帮助,将不胜感激.

amazon-web-services amazon-iam

15
推荐指数
2
解决办法
2万
查看次数

版本“apiserver.config.k8s.io/v1”中没有与类型“AdmissionConfiguration”匹配的内容

我有带有 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/ 通过在名称空间下添加标签,但是我想在集群级别激活它但它不起作用。

kubernetes azure-aks podsecuritypolicy

7
推荐指数
1
解决办法
1440
查看次数

在 azure 管道作业中使用 for 循环

我将使用 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)

for-loop azure-devops azure-pipelines

6
推荐指数
1
解决办法
2万
查看次数

从 ACR 存储库获取最新的图像标签

我需要在管道中使用 bash 命令从 Azure 容器注册表 (ACR) 获取最新的映像标签,并使用该标签进行容器部署。以下是我可以使用 Azure cli 找到的内容:

  $ az acr repository show-tags --name myacr --repository myrepo --top 1
Run Code Online (Sandbox Code Playgroud)

然而,这返回了我最旧的标签。

如何从 ACR 存储库获取最新推送的标签?

azure-cli azure-pipelines acr

5
推荐指数
1
解决办法
6950
查看次数

在 Azure Pipeline 中的作业之间传递变量

由于无法在 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)

variables azure-devops azure-pipelines

5
推荐指数
1
解决办法
6337
查看次数

对数据库使用RDS或容器(ECS)?的优点和缺点

我想在AWS上托管数据库.RDS是一种选择,但我听说过容器(和ECS).我认为容器对测试很有用,但我不确定在一个上运行生产数据库.每个人的优点和缺点是什么?

amazon-web-services amazon-ecs amazon-rds docker

3
推荐指数
1
解决办法
3045
查看次数

如何将 AWS CLI 的输出保存在变量中?

我想将 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 时,它是空的。

任何帮助,将不胜感激。

amazon-web-services aws-cli

3
推荐指数
1
解决办法
5576
查看次数

如何仅将一个静态公共 IP 分配给 AKS-multiAZ 负载均衡器

我正在设置一个多可用区 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)

azure terraform azure-load-balancer azure-aks

3
推荐指数
1
解决办法
2604
查看次数

在容器中更新Nginx配置文件,停机时间为零

我们使用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)

nginx docker-cloud docker-container

2
推荐指数
1
解决办法
2054
查看次数

使用python中的AWS Lambda将Post请求发送到外部API

我想每小时向外部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)

任何帮助,将不胜感激.

python http-post aws-lambda

2
推荐指数
2
解决办法
1万
查看次数

用C语言获取带有MPI程序的节点

我想用MPI程序获取一些节点,并在每两个节点之间做一些事情.我想知道如何用MPI获取节点(计算机)?任何帮助将是欣赏.

c mpi nodes

1
推荐指数
1
解决办法
550
查看次数