![](/img/trans.png)
[英]Missing `secret_token` and `secret_key_base` for 'development' environment, set these values in `config/secrets.yml`
[英]How to set secret data to kubernetes secrets by yaml?
我正在使用kubernetes將Rails應用程序部署到Google容器引擎。
遵循kubernetes機密文檔: http ://kubernetes.io/v1.1/docs/user-guide/secrets.html
我創建了一個Web控制器文件:
# web-controller.yml
apiVersion: v1
kind: ReplicationController
metadata:
labels:
name: web
name: web-controller
spec:
replicas: 2
selector:
name: web
template:
metadata:
labels:
name: web
spec:
containers:
- name: web
image: gcr.io/my-project-id/myapp:v1
ports:
- containerPort: 3000
name: http-server
env:
secret:
- secretName: mysecret
並創建了一個秘密文件:
# secret.yml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
RAILS_ENV: production
當我跑步時:
kubectl create -f web-controller.yml
這顯示了:
error: could not read an encoded object from web-controller.yml: unable to load "web-controller.yml": json: cannot unmarshal object into Go value of type []v1.EnvVar
error: no objects passed to create
也許yaml格式在web-controller.yml
文件中不正確。 那怎么寫?
我們目前不支持作為環境變量公開的機密。
secret.yml
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
stringData:
RAILS_ENV: production
stringData是您所追求的簡易模式版本,盡管有一件事。 您將在注釋中看到用於創建秘密的明文原始yaml(如果您使用上述方法,則意味着您在注釋中將擁有一個人類可讀的秘密,如果使用以下方法,您將擁有base64注釋中的“秘密”),除非您按照以下步驟執行“擦除注釋”命令:
kubectl應用-f secret.yml
kubectl注釋秘密mysecret kubectl.kubernetes.io/last-applied-configuration-
(最后的-表示要刪除它)
kubectl獲取秘密mysecret -n = api -o yaml
(確認)
或者你會做
Bash#回聲產生| BASE64
cHJvZHVjdGlvbgo =
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
RAILS_ENV: cHJvZHVjdGlvbgo=
假設我們現在在部署中添加imagepull機密,請按照以下步驟操作,
kubectl create secret docker-registry secret-name --docker-server=<registry-server-url> --docker-username=<Username> --docker-password=<password> --docker-email=<your-email>
現在,在部署yaml文件中參考該文件,
apiVersion: v1
kind: Deployment
metadata:
name: test-deployment
spec:
containers:
- name: test-app
image: <Image-name-private>
imagePullSecrets:
- name: secret-name
要么
假設您有一些用於訪問應用程序的api密鑰。
kubectl create secret generic secret-name --from-literal api-key="<your_api-key"
現在像這樣在部署中參考它。
env:
- name: API_KEY
valueFrom:
secretKeyRef:
name: secret-name
key: api-key
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.