1. How many Secrets exist on the system?
In the current(default) namespace.
controlplane ~ ➜ k get secrets
NAME TYPE DATA AGE
dashboard-token kubernetes.io/service-account-token 3 2m14s
answer : 1
2. How many secrets are defined in the dashboard-token secret?
controlplane ~ ➜ k describe secrets dashboard-token
Name: dashboard-token
Namespace: default
Labels: <none>
Annotations: kubernetes.io/service-account.name: dashboard-sa
kubernetes.io/service-account.uid: 5ad21e73-6a06-4ff9-bb6b-35e6c04d6095
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 570 bytes
namespace: 7 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IlVHTF9fVDJpSW12LVQ4LUR5S3ZGS3p3LUtObGVrRGtHazdrQ2pfMklERW8ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImRhc2hib2FyZC10b2tlbiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJkYXNoYm9hcmQtc2EiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1YWQyMWU3My02YTA2LTRmZjktYmI2Yi0zNWU2YzA0ZDYwOTUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkYXNoYm9hcmQtc2EifQ.eYrqzAL8MiQipVkO8nF1kiaQlgJfd8w7fPdYch-8d-ePEUixNe80yqYikbvEUA2deHVU3bCCE3PTWDWi6MUOeHftxkchvdLSKYJFIDhD29lOkHVx8N7ioLoPM02Xef8NsBjUQKYlYHS1Fw7ERzzHpH7ghwxQeQu1Lgj_dyBTOKaQ0pVczmMvD_chfatWwbgKvS_nwQy4yWgHgbm9WRz6NPu1Fl_hOEKapJHaPvapYwYhVhZRjBKLS2Ww3OAjUG8HXVzimUrab3bHH09D5Y-UM2ye3GNxKD_lgKK5SBZ0j12wlykfZKdD49jr2Dfae_Pesfo-jGWPvdbLBPGzUfE2ug
answer : 3
3. What is the type of the dashboard-token secret?
answer : kubernetes.io/service-account-token
4. Which of the following is not a secret data defined in dashboard-token secret?
answer : type
5. We are going to deploy an application with the below architecture
We have already deployed the required pods and services. Check out the pods and services created. Check out the web application using the Webapp MySQL link above your terminal, next to the Quiz Portal Link.
6. The reason the application is failed is because we have not created the secrets yet. Create a new secret named db-secret with the data given below.
You may follow any one of the methods discussed in lecture to create the secret.
controlplane ~ ➜ k create secret --help
Create a secret with specified type.
A docker-registry type secret is for accessing a container registry.
A generic type secret indicate an Opaque secret type.
A tls type secret holds TLS certificate and its associated key.
Available Commands:
docker-registry Create a secret for use with a Docker registry
generic Create a secret from a local file, directory, or literal
value
tls Create a TLS secret
Usage:
kubectl create secret (docker-registry | generic | tls) [options]
Use "kubectl create secret <command> --help" for more information about a given
command.
Use "kubectl options" for a list of global command-line options (applies to all
commands).
controlplane ~ ✖ k create secret generic db-secret --from-literal=DB_Host=sql01 -
-from-literal=DB_User=root --from-literal=DB_Password=password123
secret/db-secret created
generic :
Kubernetes에서 kubectl create secret generic 명령어는 Opaque 타입의 시크릿을 생성하는 데 사용됩니다. 이는 기본 시크릿 타입으로, 임의의 키-값 쌍을 저장하는 데 사용됩니다. generic 서브커맨드는 리터럴 값, 파일 또는 디렉토리로부터 데이터를 사용하여 이러한 시크릿을 생성할 수 있게 해줍니다.
7. Configure webapp-pod to load environment variables from the newly created secret.
Delete and recreate the pod if required.
apiVersion: v1
kind: Pod
metadata:
labels:
name: webapp-pod
name: webapp-pod
namespace: default
spec:
containers:
- image: kodekloud/simple-webapp-mysql
imagePullPolicy: Always
name: webapp
envFrom:
- secretRef:
name: db-secret
Kubernetes의 imagePullPolicy는 Pod가 컨테이너 이미지를 어떻게 가져올지를 제어하는 설정입니다. 이 설정은 Always, IfNotPresent, Never 세 가지 값 중 하나로 설정할 수 있습니다. 각 값의 역할과 사용 방법에 대해 설명하겠습니다.
imagePullPolicy의 값과 역할
1. Always
• 역할: Kubernetes는 항상 Docker 레지스트리에서 이미지를 가져옵니다.
• 사용 사례: 이미지 태그가 latest이거나 이미지를 자주 업데이트하는 경우 사용합니다.
2. IfNotPresent
• 역할: 이미지가 로컬 캐시에 없는 경우에만 Docker 레지스트리에서 이미지를 가져옵니다.
• 사용 사례: 이미지가 자주 변경되지 않거나 네트워크 대역폭을 절약하고자 할 때 사용합니다.
3. Never
• 역할: Kubernetes는 절대로 Docker 레지스트리에서 이미지를 가져오지 않고, 오직 로컬 캐시된 이미지만 사용합니다.
• 사용 사례: 로컬에 미리 이미지를 준비해두고 네트워크를 통한 이미지 풀링을 피하고자 할 때 사용합니다.
8. View the web application to verify it can successfully connect to the database
'IT 기술 > k8s' 카테고리의 다른 글
[cka] Init Containers (0) | 2024.07.06 |
---|---|
[cka] Multi Container PODs (0) | 2024.07.05 |
[cka] Env Variables (0) | 2024.07.05 |
[cka] Rolling Updates and Rollbacks (0) | 2024.07.02 |
[cka] Managing Application Logs (0) | 2024.06.24 |
댓글