Creación de un secreto
Escenario
Un secreto es un tipo de recurso que contiene datos confidenciales, como la autenticación y la información clave. Su contenido está definido por el usuario. Después de crear secretos, puede usarlos como archivos o variables de entorno en una carga de trabajo contenedorizada.
Restricciones
Los secretos no se pueden usar en pods estáticos.
Procedimiento
- Inicie sesión en la consola de CCE y acceda a la consola del clúster.
- Elija ConfigMaps and Secrets en el panel de navegación, haga clic en la ficha Secrets y haga clic en Create Secret en la esquina superior derecha.
- Establezca los parámetros.
Tabla 1 Parámetros para crear un secreto Parámetro
Descripción
Name
Nombre del secreto que crea, que debe ser único.
Namespace
Espacio de nombres al que pertenece el secreto. Si no especifica este parámetro, el valor default se utiliza de forma predeterminada.
Description
Descripción de un secreto.
Type
Tipo del secreto que crea.
- Opaque: secreto común.
- kubernetes.io/dockerconfigjson: un secreto que almacena la información de autenticación necesaria para extraer imágenes de un repositorio privado.
- kubernetes.io/tls: secreto de TLS de Kubernetes, que se utiliza para almacenar el certificado requerido por los servicios de balanceo de carga de capa 7.
- IngressTLS: secreto de TLS proporcionado por CCE para almacenar el certificado requerido por los servicios de balanceo de carga de capa 7.
- Otro: otro tipo de secreto, que se especifica manualmente.
Secret Data
Los datos de secretos de la carga de trabajo se pueden usar en contenedores.
- Si Secret Type es Opaque, haga clic en . En el cuadro de diálogo que se muestra, introduzca un par clave-valor y seleccione Auto Base64 Encoding.
- Si Secret Type es kubernetes.io/dockerconfigjson, introduzca la cuenta y la contraseña del repositorio de imágenes privadas.
- Si Secret Type es kubernetes.io/tls o IngressTLS, suba el archivo de certificado y el archivo de clave privada.
NOTA:
- Un certificado es una credencial autofirmada o firmada por CA utilizada para la autenticación de identidad.
- Una solicitud de certificado es una solicitud de firma con una clave privada.
Secret Label
Etiqueta del secreto. Ingrese un par clave-valor y haga clic en Add.
- Una vez completada la configuración, haga clic en OK.
El nuevo secreto se muestra en la lista de claves.
Ejemplo de configuración del archivo de recursos secreto
En esta sección se describen ejemplos de configuración de archivos de descripción de recursos secretos.
- Tipo de Opaque
El archivo secret.yaml se define como se muestra a continuación. El campo data se rellena como un par clave-valor, y el campo value debe codificarse usando Base64. Para obtener más información sobre el método de codificación de Base64, consulte Codificación Base64.
apiVersion: v1 kind: Secret metadata: name: mysecret #Secret name namespace: default #Namespace. The default value is default. data: <your_key>: <your_value> # Enter a key-value pair. The value must be encoded using Base64. type: Opaque
- Tipo de kubernetes.io/dockerconfigjson
El archivo secret.yaml se define como se muestra a continuación. El valor de .dockerconfigjson debe codificarse usando Base64. Para obtener más información, véase Codificación Base64.
apiVersion: v1 kind: Secret metadata: name: mysecret #Secret name namespace: default #Namespace. The default value is default. data: .dockerconfigjson: eyJh***** # Content encoded using Base64. type: kubernetes.io/dockerconfigjson
Para obtener el contenido .dockerconfigjson, realice los siguientes pasos:
- Obtenga la siguiente información de inicio de sesión del repositorio de imágenes.
- Dirección del repositorio de imágenes: La sección usa address como ejemplo. Sustitúyalo por la dirección real.
- Nombre de usuario: La sección usa username como ejemplo. Sustitúyalo con el nombre de usuario real.
- Contraseña: La sección usa password como ejemplo. Reemplácelo con la contraseña real.
- Utilice Base64 para codificar el par clave-valor username:password y rellenar el contenido codificado en 3.
echo -n "username:password" | base64
Salida del comando:
dXNlcm5hbWU6cGFzc3dvcmQ=
- Utilice Base64 para codificar el siguiente contenido de JSON:
echo -n '{"auths":{"address":{"username":"username","password":"password","auth":"dXNlcm5hbWU6cGFzc3dvcmQ="}}}' | base64
Salida del comando:
eyJhdXRocyI6eyJhZGRyZXNzIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0=
El contenido codificado es el contenido .dockerconfigjson.
- Obtenga la siguiente información de inicio de sesión del repositorio de imágenes.
- Tipo de kubernetes.io/tls
El valor de tls.crt y tls.key debe codificarse mediante Base64. Para obtener más información, véase Codificación Base64.
kind: Secret apiVersion: v1 metadata: name: mysecret #Secret name namespace: default #Namespace. The default value is default. data: tls.crt: LS0tLS1CRU*****FURS0tLS0t # Certificate content, which must be encoded using Base64. tls.key: LS0tLS1CRU*****VZLS0tLS0= # Private key content, which must be encoded using Base64. type: kubernetes.io/tls
- Tipo IngressTLS
El valor de tls.crt y tls.key debe codificarse mediante Base64. Para obtener más información, véase Codificación Base64.
kind: Secret apiVersion: v1 metadata: name: mysecret #Secret name namespace: default #Namespace. The default value is default. data: tls.crt: LS0tLS1CRU*****FURS0tLS0t # Certificate content, which must be encoded using Base64. tls.key: LS0tLS1CRU*****VZLS0tLS0= # Private key content, which must be encoded using Base64. type: IngressTLS
Creación de un secreto con kubectl
- De acuerdo con Conexión a un clúster con kubectl, configure el comando kubectl para conectar un ECS al clúster.
- Cree y edite el archivo cce-secret.yaml codificado en Base64.
# echo -n "content to be encoded" | base64 ******
vi cce-secret.yaml
El siguiente archivo YAML utiliza el tipo Opaque como ejemplo. Para obtener más información sobre otros tipos, consulte Ejemplo de configuración del archivo de recursos secreto.
apiVersion: v1 kind: Secret metadata: name: mysecret type: Opaque data: <your_key>: <your_value> # Enter a key-value pair. The value must be encoded using Base64.
- Cree un secreto.
kubectl create -f cce-secret.yaml
Puede consultar el secreto después de la creación.
kubectl get secret -n default
Operaciones relacionadas
La lista secreta contiene recursos secretos del sistema que solo se pueden consultar. Los recursos secretos del sistema no se pueden actualizar ni eliminar.
Operación |
Descripción |
---|---|
Edición de un archivo YAML |
Haga clic en Edit YAML en la fila donde reside el secreto de destino para editar su archivo YAML. |
Actualización de un secreto |
|
Eliminación de un secreto |
Seleccione el secreto que desea eliminar y haga clic en Delete. Siga las instrucciones para eliminar el secreto. |
Eliminación de secretos por lotes |
|