热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

K8S基础应用程序配置(SecretConfigMap)

Secret加密数据并存放在ETCD中,让POD的容器以挂载Volume的方式访问应用场景:https证书secret存放dockerregistry认证信息支持类型Availab

Secret


  • 加密数据并存放在ETCD中,让POD的容器以挂载Volume的方式访问

  • 应用场景:

    1. https证书
    2. secret存放docker registry认证信息
  • 支持类型

    Available Commands:docker-registry Create a secret for use with a Docker registrygeneric Create a secret from a local file, directory or literal valuetls Create a TLS secret

  • Pod使用secret的两种方式

    1. 变量注入
    2. 挂载

创建Secret

YAML配置

---
apiVersion: v1
kind: Secret
metadata:name: mysecret
type: Opaque
data:username: YWRtaW4Kpassword: cGFzc3dvcmQK
---

通过base64给账号口令加密

echo ‘admin’|base64
YWRtaW4K

echo ‘password’|base64
cGFzc3dvcmQK

验证:

kubectl get secret
kubectl describe secret

挂载方式-变量

POD通过变量方式使用secret

apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: nginximage: nginxenv:- name: SECRET_USERNAMEvalueFrom:secretKeyRef:name: mysecretkey: username- name: SECRET_PASSWORDvalueFrom:secretKeyRef:name: mysecretkey: password

验证:

进入容器

echo $SECRET_USERNAME
echo $SECRET_PASSWORD

挂载方式-Volumes

YAML配置

apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: nginximage: nginxvolumeMounts:- name: foomountPath: "/etc/foo"readOnly: truevolumes:- name: foosecret:secretName: mysecret

验证:

进入容器

cat /etc/foo/username
cat /etc/foo/password

ConfigMap

应用场景:

应用配置文件内容

创建 && 获取–变量方式

apiVersion: v1
kind: ConfigMap
metadata:name: myconfignamespace: default
data:special.level: infospecial.type: hello---apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: busyboximage: busyboxcommand: [ "/bin/sh", "-c", "echo $(LEVEL) $(TYPE)" ]env:- name: LEVELvalueFrom:configMapKeyRef:name: myconfigkey: special.level- name: TYPEvalueFrom:configMapKeyRef:name: myconfigkey: special.typerestartPolicy: Never
---

创建 && 获取–Volumes方式

apiVersion: v1
kind: ConfigMap
metadata:name: redis-config
data:redis.properties: |redis.host=127.0.0.1redis.port=6379redis.password=123456---apiVersion: v1
kind: Pod
metadata:name: mypod
spec:containers:- name: busyboximage: busyboxcommand: [ "/bin/sh","-c","cat /etc/config/redis.properties" ]volumeMounts:- name: config-volumemountPath: /etc/configvolumes:- name: config-volumeconfigMap:name: redis-configrestartPolicy: Never

验证

kubectl get cmkubectl describe cm

进入容器:

# 变量方式
echo $(LEVEL)
echo $(TYPE)
# Volumes方式
cat /etc/config

更新配置

ConfigMap更新时,业务也随之更新的方案:

  • 当ConfigMap发生变更时,应用程序动态加载

    1. 应用程序监听本地配置文件,如果发生变化触发配置热更新
    2. 使用sidecar容器监听配置文件是否封信,如果发生变化触发http,socket通知应用热更新
    3. 采用配置中心,例如nacos,apollo
  • 触发滚动更新,即重启服务

    重建pod


推荐阅读
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • k8snamespace配置cpu最大和最小限额
    世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。问:如何为namespace配置最大和最小限额&#x ... [详细]
  • docker+k8s+git+jenkins
    docker+k8s+git+jenkins,Go语言社区,Golang程序员人脉社 ... [详细]
  • Istio是一个用来连接、管理和保护微服务的开放平台。Istio提供一种简单的方式来为已部署的服务建 ... [详细]
  • k8shelm官网:https:helm.sh点击charts:https:artifacthub.iopackagessearch?sortrelevance&page11.1h ... [详细]
  • 技术分享:如何在没有公钥的情况下实现JWT密钥滥用
      ... [详细]
  • ansible 建 kubernetes 证书签名请求_Java中的微信支付(2):API V3 微信平台证书的获取与刷新...
    1.前言在Java中的微信支付(1):APIV3版本签名详解一文中胖哥讲解了微信支付V3版本API的签名,当我方(你自己的服务器)请求微信支付服务器时需 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • Dockerfile构建镜像的指令和说明
    本文介绍了Dockerfile是用来构建镜像的文本文件,其中包含了构建镜像所需的指令和说明。通过创建一个Dockerfile文件并编写内容,可以快速创建自定义的镜像。文章还提供了一个示例,展示了如何使用Dockerfile创建一个本地构建的nginx镜像,并通过docker images命令查看镜像的版本。希望本文对大家的学习有所帮助,并希望大家多多支持编程笔记。 ... [详细]
  • kubelet配置cni插件_Kubernetes新近kubectl及CNI漏洞修复,Rancher 2.2.1发布
    今天,Kubernetes发布了一系列补丁版本,修复新近发现的两个安全漏洞CVE-2019-1002101(kubectlcp命令安全漏洞)和CVE-2 ... [详细]
  • JWT的基本使用
    1场景JSONWebToken(JWT)是一种开放标准(RFC7519),它定义了一种紧凑和自包含的方式,用于作为JSON对象在各方之 ... [详细]
  • XSS 漏洞绕过
    Web安全攻防学习笔记 ... [详细]
  • 今天在node节点发现不能查看pod了输入命令错误如下[rootnode01~]#kubectlgetpodTheconnectiontotheserverlocalhost:8 ... [详细]
  • Python爬虫引入
    什么是爬虫?通过编写程序,模拟浏览器上网,让其在互联网上抓取数据的过程。爬虫的价值实际应用抓取互联网上的数据,为我所用。就业爬虫究竟是合法还是非法的?在法律中不被禁止具有违法风险善 ... [详细]
  • Python实现强制复制粘贴的示例详解-目录前因后果流程思路代码展示效果展示前因后果公司有人阳了,今天在家上班,突然小姨子就问我有没有baidu文库会员,想下载点东西,我心想这还要 ... [详细]
author-avatar
__wolf狼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有