我想为我的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秘密文件。
更新:
我使用以下命令对data
Mac上的值进行编码:
echo -n 'mega_secret_key' | openssl base64
Run Code Online (Sandbox Code Playgroud) 暂停 2 年后,我重新开始使用 PlayFramework。所以我通过 Intellij IDEA 创建了一个新的 Play Scala 项目。但结果很奇怪:
build.sbt
以红色突出显示build.gradle
O_o这三个参数如何用于计费计划还不够清楚:
我认为它的工作方式如下:
(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 年)
我对么?
我在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
。
我正在尝试在AWS上设置kubernetes。为此,我根据官方的AWS教程创建了一个具有3个节点(t2.small)的EKS集群。然后,我想用一些与Postgres(不同VPC中的RDS)通信的应用程序运行一个pod。
但不幸的是,该应用程序未连接到数据库。
是)我有的:
完成所有这些步骤后,我执行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主机地址。
此修复程序无效:(
不久前,我从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吗?
我将 Jenkins 作为独立的构建机器运行。
它工作正常,我已经创建了多个管道。但它在舞台视图和构建历史中显示相同构建的两个不同时间。时差正好是2小时。
请查看随附的屏幕截图,以获得对该问题的更多说明。
我该如何解决这个问题?
我正在尝试放入一些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
我坚持使用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
?
我正在尝试使用本地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)