Viết file lab1.yaml
để tạo Service
và Deployment
.
Trước khi tạo Deployment
ta kiểm tra cụm:
kubectl apply -f lab1.yaml
Sau khi tạo ta kiểm tra hoạt động của Service và các Pod đã được tạo:
Với cụm có <Ip-Node>
có thể sử dụng câu lệnh theo Service
loại NodePort
:
http://<nodeIP>:nodePort
Kiểm tra <Ip-Node>
hay EXTERNAL-IP
sau khi thực hiện câu lệnh:
kubectl get nodes -o wide
Trong cụm minikube
không có EXTERNAL-IP
nên ta thực hiện mở ứng dụng bằng lệnh service
.
minikube service nginx-default-service
Minikube tự động mở trình duyệt mặc định:
curl http://127.0.0.1:56632
Download template tại antique-cafe.
Dùng lệnh cd
đến thư mục chứa template đã giải nén và ở trong ví dụ này ta mở bằng thư mục bằngvisual studio code
. Thực hiện tạo Dockerfile
và nginx.conf
cùng cấp.
cd [thư_mục_đích]
docker build -t static-web1-final .
docker run -d -p 127.0.0.1:80:80 static-web1-final
Ta kiểm tra trên docker desktop thấy container ở trạng thái
Running
có nghĩa là đã tạo image
thành công :
Mở trình duyệt (browser) địa chỉ để thấy ứng dụng:
http://127.0.0.1:80
curl http://127.0.0.1:80
docker tag static-web1-final thanhlongnguyen1012/static-web1-final
docker push thanhlongnguyen1012/static-web1-final
kubectl apply -f lab2.yaml
kubectl get pod
kubectl get service
Với cụm có <Ip-Node>
có thể sử dụng câu lệnh theo Service
loại NodePort
:
http://<nodeIP>:nodePort
Kiểm tra <Ip-Node>
hay EXTERNAL-IP
sau khi thực hiện câu lệnh:
kubectl get nodes -o wide
Trong cụm minikube
không có EXTERNAL-IP
nên ta thực hiện mở ứng dụng bằng lệnh:
minikube service static-web1-service
Câu lệnh trên mở browser mặc định:
curl http://127.0.0.1:53569
Cách làm tương tự như ở lab2
. Trang web được sử dụng ở đây được download tại makaan template.
docker build -t static-web2-final .
docker run -d -p 127.0.0.1:80:80 static-web2-final
http://127.0.0.1:80
curl http://127.0.0.1:80
docker tag static-web2-final thanhlongnguyen1012/static-web2-final
docker push thanhlongnguyen1012/static-web2-final
chú ý nếu đã tạo tài nguyên bằng file lab2.yaml
thì không tạo bằng file lab3-1.yaml
để tránh xung đột vì 2 file giống hệt nhau, đều có mục đích là tạo tài nguyên web1 tĩnh
kubectl apply -f lab3-2.yaml
kubectl get pod
kubectl get service
Với cụm có <Ip-Node>
có thể sử dụng câu lệnh theo Service
loại NodePort
:
http://<nodeIP>:nodePort
Kiểm tra <Ip-Node>
hay EXTERNAL-IP
sau khi thực hiện câu lệnh:
kubectl get nodes -o wide
Trong cụm minikube
không có EXTERNAL-IP
nên ta thực hiện mở ứng dụng bằng lệnh:
minikube service static-web2-service
Minikube tự động mở trình duyệt mặc định:
Có thể thực hiện lệnh curl
:
curl http://127.0.0.1:55185
kubectl apply -f lab3-3.yaml
kubectl apply -f lab3-4.yaml
kubectl get pod
kubectl get service
Với cụm có <Ip-Node>
có thể sử dụng câu lệnh theo Service
loại NodePort
:
http://<nodeIP>:nodePort
Kiểm tra <Ip-Node>
hay EXTERNAL-IP
sau khi thực hiện câu lệnh:
kubectl get nodes -o wide
Trong cụm minikube
không có EXTERNAL-IP
nên ta thực hiện mở ứng dụng bằng lệnh:
minikube service nginx-proxy
Minikube tự động mở trình duyệt mặc định:
Có thể thực hiện lệnh curl
:
curl http://127.0.0.1:55231
curl http://127.0.0.1:55231/web1
Kết quả thu được là:
Chú ý rằng phải truy cập có thêm /
đằng sau nếu muốn xuất hiện giao diện web một cách đầy đủ, vì khi có dấu /
thì nginx mới hiểu và lấy đủ các file html
,htm
... trong source code.
Ta có thể mở bằng browser
bằng câu lệnh:
http://127.0.0.1:55231/web1
Nếu muốn hiển thị đầy đủ giao diện:
http://127.0.0.1:55231/web1/
curl http://127.0.0.1:55231/web2
Kết quả thu được là:
Ta có thể mở bằng browser
: