A secret is a type of resource that holds sensitive data, such as authentication and key information. Its content is user-defined. After creating secrets, you can use them as files or environment variables in a containerized workload.
Secrets cannot be used in static pods.
Parameter |
Description |
---|---|
Name |
Name of the secret you create, which must be unique. |
Namespace |
Namespace to which the secret belongs. If you do not specify this parameter, the value default is used by default. |
Description |
Description of a secret. |
Type |
Type of the secret you create.
|
Secret Data |
Workload secret data can be used in containers.
|
Secret Label |
Label of the secret. Enter a key-value pair and click Confirm. |
The new secret is displayed in the key list.
This section describes configuration examples of secret resource description files.
The secret.yaml file is defined as shown below. The data field is filled in as a key-value pair, and the value field must be encoded using Base64. For details about the Base64 encoding method, see Base64 Encoding.
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
The secret.yaml file is defined as shown below. The value of .dockerconfigjson must be encoded using Base64. For details, see Base64 Encoding.
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
To obtain the .dockerconfigjson content, perform the following steps:
echo -n "username:password" | base64
Command output:
dXNlcm5hbWU6cGFzc3dvcmQ=
echo -n '{"auths":{"address":{"username":"username","password":"password","auth":"dXNlcm5hbWU6cGFzc3dvcmQ="}}}' | base64
Command output:
eyJhdXRocyI6eyJhZGRyZXNzIjp7InVzZXJuYW1lIjoidXNlcm5hbWUiLCJwYXNzd29yZCI6InBhc3N3b3JkIiwiYXV0aCI6ImRYTmxjbTVoYldVNmNHRnpjM2R2Y21RPSJ9fX0=
The encoded content is the .dockerconfigjson content.
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
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
# echo -n "content to be encoded" | base64 ******
vi cce-secret.yaml
The following YAML file uses the Opaque type as an example. For details about other types, see Secret Resource File Configuration Example.
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.
kubectl create -f cce-secret.yaml
You can query the secret after creation.
kubectl get secret -n default
The secret list contains system secret resources that can be queried only. The system secret resources cannot be updated or deleted.
Operation |
Description |
---|---|
Editing a YAML file |
Click Edit YAML in the row where the target secret resides to edit its YAML file. |
Updating a secret |
|
Deleting a secret |
Select the secret you want to delete and click Delete. Follow the prompts to delete the secret. |
Deleting secrets in batches |
|