标签: devops

Google Kubernetes Engine:为服务类型启用HTTPS

我在GKE上有一个应用程序,我希望仅通过HTTPS提供,因此我获得了一个签名证书以使用TLS保护应用程序.

我已经查看了很多有关如何执行此操作的教程,但它们都是指使用Ingress并使用LetsEncrypt和KubeLego自动请求证书.但我希望继续使用外部负载平衡器(谷歌为我提供的计算引擎实例),但我只想通过https访问我的应用程序.

如何应用我的server.crt和server.key文件来启用https.Do我将它应用于负载均衡器或kubernetes集群.

google-cloud-platform kubernetes devops

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

Azure DevOps 项目管道无法从不同项目中的工件源访问 NuGet 包

2020 年 2 月 20 日更新

概括

Azure DevOps 管道构建无法从我们在 Artifacts 下的私有源中找到 NuGet 包。

我们的 Azure DevOps 环境

在 Azure 中,我们有我们的公司“空间”:dev.azure.com/OurCompany

在此之下,我们有多个项目,例如,想象一下这三个:

  • 绿色:这包含某种类型的应用程序
  • 蓝色:这包含不同类型的应用程序
  • 红色:这包含我们的“通用”辅助代码

红色的

RED 保存了我们所有常见的帮助程序代码,这些代码都是 GREEN 和 BLUE 应用程序使用的 DLL。这些以 NuGet 包的形式提供。

在 RED 的 Artifacts 下,我们看到了一个名为“OurCompany”的“组织范围提要”。我们知道我们不能使用它,因为这些 NuGet 包需要对 OurCompany 中的每个人可用,这意味着不仅在 Azure 上,而且在我们公司网络(我们运行 Visual Studio 的地方)中的桌面计算机上。我认为“组织范围内的提要”不会暴露给我们的企业网络。

因此,我们在 RED 的 Artifacts 下创建了一个新的 Feed。当我查看权限时,我看到以下条目:

  • {我}:(所有者)
  • [OurCompany]\Project Collection Adminstrators : (所有者)
  • [RED]\项目管理员:(所有者)
  • RED 构建服务(我们的公司):(贡献者)
  • 项目集合构建服务(OurCompany):(贡献者)
  • [RED]\贡献者(贡献者)

公司的

因此,回到 Corporate,我们将 NuGet 包源添加到我们的 Visual Studio,然后它可以从 Azure 中提取 NuGet 包。

绿色和蓝色

在这里,我们有我们的产品。我们创建了一个构建管道,并添加了一个 NuGet …

nuget-package-restore devops azure-devops azure-pipelines azure-artifacts

14
推荐指数
2
解决办法
5853
查看次数

在docker compose中使用主机网络和其他网络

我正在尝试为我的项目设置开发环境.

我有一个容器(ms1)应该放在他自己的网络中(在我的情况下是"服务"),以及一个容器(apigateway)应该访问该网络,同时将一个http端口暴露给主机的网络.

理想情况下,我的docker撰写文件看起来像这样:

version: '2'
services:
    ms1:
        expose:
            - "13010"
        networks:
            services:
                aliases:
                    - ms1
   apigateway:
        networks:
            services:
                aliases:
                    - api
        network_mode: "host"
networks:
    services:
Run Code Online (Sandbox Code Playgroud)

docker-compose不允许同时使用network_mode和网络.

我还有其他选择吗?

目前我正在使用这个:

   apigateway:
        networks:
            services:
                aliases:
                    - api
        ports:
            - "127.0.0.1:10000:13010"
Run Code Online (Sandbox Code Playgroud)

然后apigateway容器侦听0.0.0.0:13010.它工作但它很慢,如果主机的互联网连接断开,它会冻结.

另外,我计划将来在docker上使用vagrant,它是否允许以干净的方式解决?

networking vagrant docker docker-compose devops

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

使用Vagrant在没有VirtualBox的情况下使用KVM/qemu设置VM

我开始使用Vagrant并希望将它与KVM/qemu(以及Virtual Machine Manager GUI)一起使用,而不是安装VirtualBox.所以我先安装了Vagrant:

$ vagrant --version
Vagrant 1.9.1

$ vagrant box list
There are no installed boxes! Use `vagrant box add` to add some
Run Code Online (Sandbox Code Playgroud)

由于 这些 帖子,我需要vagrant-libvirt为它与KVM工作,所以我安装了下一个:

$ vagrant plugin list
vagrant-libvirt (0.0.37)
vagrant-share (1.1.6, system)
Run Code Online (Sandbox Code Playgroud)

接下来,我在提示时添加一个CentOS(7)框vagrant box add "centos/7"并使用和选中libvirt.之后,我跑了vagrant init,没有遇到任何错误:

$ vagrant init centos/7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in …
Run Code Online (Sandbox Code Playgroud)

kvm qemu vagrant vagrantfile devops

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

如何在使用Edeliver部署的Phoenix Web应用程序中查看生产日志?

使用以下步骤使用Edeliver&Distillery将我们的应用程序成功部署到虚拟机后:https: //github.com/dwyl/learn-phoenix-framework/blob/master/production-deployment.md

该应用程序运行:http://52.232.127.28/ 凤凰-APP-运行

但是当我们试图访问"帖子"路线时:http://52.232.127.28/posts 我们看到internal server error: 凤凰内部服务器错误

作为一个凤凰诺布,不知道如何调试Prod中的日志......

我们如何在虚拟机上看到这些日志?日志在哪里,我们可以tail记录日志吗?

erlang logging elixir phoenix-framework devops

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

如何从docker容器运行webpack构建?

我正在制作的应用程序是用ES6编写的,其他好东西是由Docker容器中的webpack编译的.目前,一切都可以从创建内部目录,安装依赖项和创建编译的bundle文件开始.

相反,当运行容器时,它表示dist/bundle.js不存在.除非我在主机目录中创建捆绑文件,否则它将起作用.

我已经尝试为dist目录创建一个卷,它第一次工作,但在进行更改和重建之后它不会获取新的更改.

我想要实现的是让容器构建并运行已编译的bundle.我不确定webpack部分是作为构建步骤在Dockerfile中还是在运行时,因为CMD ["yarn", "start"]崩溃但是RUN ["yarn", "start"]有效.

任何建议和帮助表示赞赏.提前致谢.

|_src
  |_index.js
|_dist
  |_bundle.js
|_Dockerfile
|_.dockerignore
|_docker-compose.yml
|_webpack.config.js
|_package.json
|_yarn.lock
Run Code Online (Sandbox Code Playgroud)

泊坞窗,compose.yml

version: "3.3"
services:
  server:
    build: .
    image: selina-server
    volumes:
      - ./:/usr/app/selina-server
      - /usr/app/selina-server/node_modules
      # - /usr/app/selina-server/dist
    ports:
      - 3000:3000
Run Code Online (Sandbox Code Playgroud)

Dockerfile

FROM node:latest

LABEL version="1.0"
LABEL description="This is the Selina server Docker image."
LABEL maintainer="AJ alvaroo@selina.com"

WORKDIR "/tmp"

COPY ["package.json", "yarn.lock*", "./"]

RUN ["yarn"]

WORKDIR "/usr/app/selina-server"

RUN ["ln", "-s", "/tmp/node_modules"]

COPY [".", "./"]

RUN ["yarn", "run", "build"] …
Run Code Online (Sandbox Code Playgroud)

node.js docker webpack docker-compose devops

13
推荐指数
2
解决办法
4556
查看次数

Istio(0.7.1):断路器不适用于httpConsecutiveErrors

断路器不会在httpConsecutiveErrors上跳闸:1(对于500响应).所有请求都通过并提供500.断路器应跳闸,应返回503(服务不可用).

按照断路器设置步骤进行操作 .

一旦httpbin启动,你可以用它模拟500请求:

kubectl exec -it $FORTIO_POD -c fortio /usr/local/bin/fortio -- load -c 1 -qps 0 -n 20 -loglevel Warning http://httpbin:8000/status/500
Run Code Online (Sandbox Code Playgroud)

运行此操作将模拟返回500的20个请求.

但是,如果您已应用断路器,则应仅允许一个请求为500,并且应该跳过剩余的请求并返回503.这不会发生.在github Github问题上提出的问题

circuit-breaker kubernetes devops istio envoyproxy

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

CloudFormation 资源创建(如果不存在)

我想用 CloudFormation 创建 Route53 HostedZone,所以我想检查一下 Route53 中关于 HostedZone 的一些信息是否存在。

在我的情况下,我需要检查资源是否存在,忽略资源创建。我该如何处理这个问题。

我的 CloudFormation 模板如下所示。

"myDNSRecord" : {
  "Type" : "AWS::Route53::RecordSet",
  "Properties" : {
    "HostedZoneName" : { "Ref" : "HostedZoneResource" },
    "Comment" : "DNS name for my instance.",  
    "Name" : {
      "Fn::Join" : [ "", [
        {"Ref" : "Ec2Instance"}, ".",
        {"Ref" : "AWS::Region"}, ".",
        {"Ref" : "HostedZone"} ,"."
      ] ]
    },
    "Type" : "A",
    "TTL" : "900",
    "ResourceRecords" : [
      { "Fn::GetAtt" : [ "Ec2Instance", "PublicIp" ] }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-cloudformation devops infrastructure-as-code

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

开发人员是否应该能够在他们的开发环境中从 lerna monorepo 创建一个 docker 工件?

我最近开始使用 lerna 来管理 monorepo,在开发中它运行良好。

Lerna 在我的各种包之间创建符号链接,因此像 'tsc --watch' 或 nodemon 这样的工具可以很好地检测其他包中的变化。

但是我在这种环境中创建 docker 镜像时遇到了问题。

假设我们有一个具有这种结构的项目:

root
  packages
     common ? artifact is a private npm package, this depends on utilities, something-specific
     utilities ? artifact is a public npm package
     something-specific -> artifact is a public npm package
     frontend ? artifact is a docker image, depends on common
     backend ? artifact is a docker image, depends on common and utilities
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在开发中,一切都很好。我正在运行某种实时重新加载服务器,并且符号链接可以正常工作,因此依赖项可以正常工作。

现在假设我想从后端创建一个 docker 镜像。

我将介绍一些场景:

  1. ADD在我的 Dockerfile 中打包.json,然后运行 ​​npm install。 …

docker microservices devops monorepo

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

如何将 GitLab CI 文件变量传递给 Dockerfile 和 docker 容器?

GitLab CI 允许向项目添加自定义变量。

它允许使用类型的秘密变量,file其中我指定了一个作为变量名称的密钥和作为文件内容的值(例如证书的内容)

然后在管道执行期间,内容将保存为临时文件,调用变量名称将返回创建文件的路径。

最终,我需要将此文件复制到构建项目时创建的 Docker 容器中。(docker build ...在yml中)

当如果变量作品测试,我想echo $VARIABLE.gitlab-ci.yml和它的作品,临时文件的路径返回。但是在RUN echo $VARIABLEin 中执行时Dockerfile,它是空的。因此我也不能使用ADD $VARIABLE /tmp/这是我的目标。

有没有办法解决这个问题并使这个文件可供Dockerfile? 我是 Docker 和 GitLab 的新手,不知道还能去哪里找。

gitlab docker gitlab-ci dockerfile devops

13
推荐指数
2
解决办法
8610
查看次数