Install and deploy K8s Cluster
Cập nhật nội dung file hosts
- Node master
[masters]
master_1 ansible_host=aws.k8s.master
- Node worker
[workers]
worker_1 ansible_host=aws.k8s.node.1
worker_2 ansible_host=aws.k8s.node.2
worker_3 ansible_host=aws.k8s.node.3
ansible-playbook install-k8s.yml --inventory=hosts
kubectl get nodes
NAME STATUS ROLES AGE VERSION
cp-k8s-master Ready master 16h v1.18.20
cp-k8s-node-1 Ready worker 16h v1.18.20
cp-k8s-node-2 Ready worker 16h v1.18.20
cp-k8s-node-3 Ready worker 16h v1.18.20
Tới đây là đã triển khai được 1 cluster K8s giữa Master - Worker Node
Bắt đầu triển khai ứng dụng vào K8s Cluster. Tại thư mục helm/website_stack để thực thi các lệnh bên dưới
make ingress
Readmore https://chris-vermeulen.com/using-gitlab-registry-with-kubernetes/
Tạo file docker.config.json và điền vào các biến số, theo dõi liên kết để nhận biến số
{
"auths": {
"https://registry.gitlab.com": {
"username": "<>",
"password": "<>",
"email": "<>",
"auth": "<>",
}
}
}
Chạy lệnh bên dưới và copy token vào file .yaml
. Thay thế cho BASE_64_ENCODED_DOCKER_FILE
cat docker.config.json | base64
kubectl apply -f gitlab-registry-credentials.yaml
Parameter | Description | Default |
---|---|---|
metadata.name |
"" |
|
metadata.namespace |
"default" |
|
data.dockerconfigjson |
BASE_64_ENCODED_DOCKER_FILE | "" |
Sử dụng để test template dưới local
helm template cms ./application -f cms.yaml
helm template frontend ./application -f frontend.yaml
The following table lists the configurable parameters of the chart and their default values.
Parameter | Description | Default |
---|---|---|
image.repository |
Replace frontend image id or image path here | "" |
image.tag |
Image tag, will override the default tag derived from the chart app version. | "" |
image.pullPolicy |
Image pull policy. | IfNotPresent |
imagePullSecrets |
Image pull secrets.(gitlab-registry-credentials.metadata.name) |
frontend |
applicationName |
"" |
|
envVars.* |
Set environment params for application | [] |
helm upgrade --install frontend ./application -f frontend.yaml
NAME: frontend
LAST DEPLOYED: Wed Sep 21 11:42:49 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
helm upgrade --install backend ./application -f cms.yaml
NAME: backend
LAST DEPLOYED: Wed Sep 21 11:18:11 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
kubectl rollout restart deploy frontend
kubectl rollout restart deploy cms
Note: Sử dụng cho chart tự viết
Reference here: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#use-case
kubectl set image --record deployment/prod-phs-backend main=<container_repo_url>:<container_tag> --namespace default
Command này chỉ đúng khi <container_tag> có thai đổi
kubectl rollout restart deployment/prod-phs-backend --namespace default
Command này buộc kubernetes phải tắt pod của deployment và tạo pod mới. Nếu set imagePullPolicy: Always thì sẽ luôn pull image mới nhất từ container registry về
kubectl rollout status deployment/prod-phs-backend --namespace default
kubectl rollout undo deployment/prod-phs-backend --namespace default
Command này cho phép rollback về version trước của deployment, nhưng sẽ không hoạt động nếu container_tag của version liền kế trước giống với version hiện tại.
env | install k8s-cluster | Kube deploy |
---|---|---|
local | ✅ | ✅ |
ec2 instances | ✅ | ✅ |
on Premise | 🔲 | 🔲 |