小编Ale*_*ein的帖子

无法在Kubernetes中创建Secret:输入时存在非法的base64数据

我想为我的kubernetes集群创建一个秘密。所以我写了以下dummy-secret.yaml文件:

apiVersion: v1
kind: Secret
metadata:
  name: dummy-secret
type: Opaque
data:
  API_KEY: bWVnYV9zZWNyZXRfa2V5
  API_SECRET: cmVhbGx5X3NlY3JldF92YWx1ZTE=
Run Code Online (Sandbox Code Playgroud)

运行时,kubectl create -f dummy-secret.yaml我收到以下消息:

Error from server (BadRequest): error when creating "dummy-secret.yaml": Secret in version "v1" cannot be handled as a Secret: v1.Secret: Data: decode base64: illegal base64 data at input byte 8, error found in #10 byte of ...|Q89_Hj1Aq","API_SECR|..., bigger context ...|sion":"v1","data":{"API_KEY":"af76fsdK_cQ89_Hj1Aq","API_SECRET":"bsdfmkwegwegwe"},"kind":"Secret","m|...
Run Code Online (Sandbox Code Playgroud)

不知道为什么会发生。

据我了解,我需要将所有值编码data在yaml文件中的键下。所以我做了base64编码,但是kubernetes仍然不能像我期望的那样处理yaml秘密文件。

更新:

我使用以下命令对dataMac上的值进行编码:

echo -n 'mega_secret_key' | openssl base64
Run Code Online (Sandbox Code Playgroud)

kubernetes

10
推荐指数
3
解决办法
9002
查看次数

Intellij IDEA:为什么 build.sbt 以红色突出显示?

暂停 2 年后,我重新开始使用 PlayFramework。所以我通过 Intellij IDEA 创建了一个新的 Play Scala 项目。但结果很奇怪:

  1. 的内容build.sbt以红色突出显示
  2. 该项目包含build.gradleO_o

所以问题是:为什么 的内容build.sbt用红色下划线?在此处输入图片说明

scala intellij-idea playframework

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

PayPal Billing Plan 频率、frequency_interval 和cycles 的含义

这三个参数如何用于计费计划还不够清楚:

  1. 频率
  2. 频率间隔
  3. 周期

我认为它的工作方式如下:

(A) frequency=MONTH + frequency_interval=2 + Cycles=3 + amount={10 USD} -> 订阅者每两个月将被收取 3 次,每次 10 美元(6 个月内支付 3x10usd)

(B) frequency=YEAR + frequency_interval=1 + Cycles=1 + amount={100 USD} -> 订阅者在订阅创建的那一刻将被收取 1 次 100 美元(100 美元支付 1 年)

我对么?

paypal paypal-subscriptions

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

如何将所有Secrets中的所有值传递给Kuberentes中的env变量?

我在Kubernetes中有多个秘密。它们全部包含许多值,例如:

apiVersion: v1
kind: Secret
metadata:
  name: paypal-secret
type: Opaque
data:
  PAYPAL_CLIENT_ID: base64_PP_client_id
  PAYPAL_SECRET: base64_pp_secret
stringData:
  PAYPAL_API: https://api.paypal.com/v1
  PAYPAL_HOST: api.paypal.com
Run Code Online (Sandbox Code Playgroud)

我很好奇如何将所有值从所有Secrets传递到ReplicaSet例如。

我尝试了这种方法:

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: pp-debts
  labels:
    environment: prod
spec:
  replicas: 1
  selector:
    matchLabels:
      environment: prod
  template:
    metadata:
      labels:
        environment: prod
    spec:
      containers:
      - name: integration-app
        image: my-container-image
        envFrom:
        - secretRef:
          name: intercom-secret
        envFrom:
        - secretRef:
            name: paypal-secret
        envFrom:
        - secretRef:
            name: postgres-secret
        envFrom:
        - secretRef:
            name: redis-secret
Run Code Online (Sandbox Code Playgroud)

但是,当我连接到pod并查看env变量时,我只能从中看到值redis-secret

kubernetes

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

Kubernetes:无法从EKS pod到RDS Postgres

我正在尝试在AWS上设置kubernetes。为此,我根据官方的AWS教程创建了一个具有3个节点(t2.small)的EKS集群。然后,我想用一些与Postgres(不同VPC中的RDS)通信的应用程序运行一个pod。

但不幸的是,该应用程序未连接到数据库。

是)我有的:

  1. 具有自己的VPC的EKS群集(CIDR:192.168.0.0/16)
  2. 具有自己的VPC的RDS(Postgres)(CIDR:172.30.0.0/16)
  3. 从RDS VPC到EKS VPC的对等连接已启动
  4. 更新了EKS群集的3个公共子网的路由表:添加了目的地为172.30.0.0/16和目标为#3的对等连接的路由。
  5. RDS的路由表已更新:目的地为192.168.0.0/16且目标为目标的路由—添加了来自步骤3的对等连接。
  6. RDS安全组已更新,添加了新的入站规则:允许来自192.168.0.0/16的所有流量

完成所有这些步骤后,我执行kubectl命令:

kubectl exec -it my-pod-app-6vkgm nslookup rds-vpc.unique_id.us-east-1.rds.amazonaws.com
nslookup: can't resolve '(null)': Name does not resolve

Name:      rds-vpc.unique_id.us-east-1.rds.amazonaws.com
Address 1: 52.0.109.113 ec2-52-0-109-113.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

然后,我连接到三个节点之一并执行命令:

getent hosts rds-vpc.unique_id.us-east-1.rds.amazonaws.com
52.0.109.113    ec2-52-0-109-113.compute-1.amazonaws.com rds-vpc.unique_id.us-east-1.rds.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

为了从Pod访问RDS,我在EKS设置中错过了什么?

更新:

我试图通过以下方法解决此问题Service

apiVersion: v1
kind: Service
metadata:
  name: postgres-service
spec:
  type: ExternalName
  externalName: rds-vpc.unique_id.us-east-1.rds.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

因此,我在EKS中创建了此服务,然后尝试将其postgres-service称为DB URL而不是直接RDS主机地址。

此修复程序无效:(

amazon-web-services kubernetes aws-eks

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

在http4s中发送JSON响应的正确方法是什么?

不久前,我从akka-http切换到http4s。我想要正确执行的基本操作之一-JSON处理,尤其是发送JSON响应。

我决定在ZIO中使用http4s而不是cat,因此这是http路由的样子:

import fs2.Stream
import org.http4s._
import org.http4s.dsl.io._
import org.http4s.implicits._
import scalaz.zio.Task
import scalaz.zio.interop.catz._
import io.circe.generic.auto._
import io.circe.syntax._

class TweetsRoutes {

  case class Tweet(author: String, tweet: String)

  val helloWorldService = HttpRoutes.of[Task] {
    case GET -> Root / "hello" / name => Task {
      Response[Task](Ok)
        .withBodyStream(Stream.emits(
          Tweet(name, "dummy tweet text").asJson.toString.getBytes
        ))
    }
  }.orNotFound

}
Run Code Online (Sandbox Code Playgroud)

如您所见,JSON序列化部分非常冗长:

.withBodyStream(Stream.emits(
  Tweet(name, "dummy tweet text").asJson.toString.getBytes
))
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以在响应中发送JSON吗?

scala http4s zio

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

Jenkins 在 Stage View & Build History 中显示相同构建的不同时间

我将 Jenkins 作为独立的构建机器运行。

它工作正常,我已经创建了多个管道。但它在舞台视图和构建历史中显示相同构建的两个不同时间。时差正好是2小时。

请查看随附的屏幕截图,以获得对该问题的更多说明。

我该如何解决这个问题?

在此处输入图片说明

jenkins

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

带有指令和表达式的ui-gmap-window

我正在尝试放入一些HTML模板ui-gmap-window.HTML包含诸如ng-click和之类的指令ng-repeat但它们不起作用.

<ui-gmap-google-map bounds="map.bounds" 
                        center="map.center" 
                        zoom="map.zoom" 
                        options="options">
      <ui-gmap-window options="windowOpt"
                      show="windowOpt.show"
                      closeClick="closeWindow">
        <div class='map-popup'>
            <div><a ng-click='doIt()' href='#'>Action</a></div>
            <div ng-repeat="item in list">
                {{item.content}}
            </div>
        </div>
      </ui-gmap-window>
</ui-gmap-google-map>
Run Code Online (Sandbox Code Playgroud)

或者我可能需要用另一种方法来制作类似旋转木马的内容ui-gmap-window

谢谢

以下是一个示例:http: //plnkr.co/edit/k8vvW3

google-maps-api-3 angularjs angular-google-maps

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

Akka HTTP如何使用Content-Type应用程序/ x-www-form-urlencoded来发布singleRequest

我坚持使用Akka HTTP发送请求singleRequest()。我正在尝试处理Stripe API,它需要application/x-www-form-urlencoded传入请求的内容类型。

我尝试使用HTTP请求的以下结构:

val authorization = Authorization(OAuth2BearerToken("some_token"))

Http().singleRequest(HttpRequest(
        uri = Uri("https://api.stripe.com/v1/customers"),
        method = HttpMethods.POST,
        headers = List(authorization),
        entity = FormData(Map("email" -> HttpEntity("test_1@email.com"))).toEntity(),
        protocol = HttpProtocols.`HTTP/1.1`)
      )
Run Code Online (Sandbox Code Playgroud)

但是在Stripe日志中,我在“解析的请求POST正文”部分中看到以下内容:

(多部分形式:162)

那么问题是如何将内容类型设置为application/x-www-form-urlencoded

scala akka akka-http

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

Docker:如何为本地Dynamo DB创建表?

我正在尝试使用本地Amazon Dynamo DB创建一个docker容器。它实际上有效。但是我不明白如何在Docker文件中为此映像创建表?

通过javascript,我创建了一个像这样的表:

var params = {
    TableName: 'UserActivity',
    KeySchema: [ 
        {
            AttributeName: 'user_id',
            KeyType: 'HASH',
        },
        {
            AttributeName: 'user_action', 
            KeyType: 'RANGE', 
        }
    ],
    AttributeDefinitions: [
        {
            AttributeName: 'user_id',
            AttributeType: 'S',
        },
        {
            AttributeName: 'user_action',
            AttributeType: 'S',
        }
    ],
    ProvisionedThroughput: {
        ReadCapacityUnits: 2, 
        WriteCapacityUnits: 2, 
    }
};
dynamodb.createTable(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response

});
Run Code Online (Sandbox Code Playgroud)

这是我的Docker文件:

FROM openjdk:8-jre-alpine

ENV DYNAMODB_VERSION=latest

RUN apk add --update curl && \
    rm -rf /var/cache/apk/* …
Run Code Online (Sandbox Code Playgroud)

amazon-dynamodb docker

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