- vừa được xem lúc

Cài đặt và sử dụng private registry trong bộ tích hợp của Microk8s

0 0 22

Người đăng: BIG DOG

Theo Viblo Asia

Trước tiên thì hệ thống mình hướng dẫn trong series sẽ triển khai trong moi trường VM và các image sẽ không public ra Internet nên mình sử dụng private registry

Kích hoạt registry

Mình ssh vào VM stg-02 (10.19.2.92) để thực hện, vai trò con stg-02 hiện giờ đang đóng vai trò Master

ssh ubuntu@10.19.2.92 Nhập Pass

Sau khi login vào stg-02 thành công ta tiến hành kích hoạt registry bằng lệnh

microk8s enable registry

Sau khi kích hoạt registry thì persistent volume mặt định là 20G dùng để lưu trữu images, tuy nhiên bạn có thể cấp thêm để phù hợp với ứng dụng của bạn

microk8s enable registry:size=40Gi

Cách sử dụng Private Registry

  1. Cài đặt Docker Engine trên ubuntu 22.04 (các bạn tham khảo thêm ở nguồn https://docs.docker.com/engine/install/ubuntu/)
  • Gỡ cài đặt phiên bản cũ
sudo apt-get remove docker docker-engine docker.io containerd runc

Thiết lập repository

  • Cập nhật chỉ mục gói apt và cài đặt các gói để cho phép apt sử dụng kho lưu trữ qua HTTPS: sudo apt-get update sudo apt-get install ca-certificates curl gnupg lsb-release

  • Thêm khóa GPG chính thức của Docker:

 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  • Sử dụng lệnh để thiết lập repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Cài đặt Docker Engine

  1. Cập nhât các gói apt
 sudo apt-get update
  1. Cài đặt Docker Engine, containerd và Docker Compose.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Cấu hình Insecure registry (Cho phép push image không cần SSL)

Ở máy build và máy push từ Docker chúng ta cần thêm cấu hình ở file /etc/docker/daemon.json

sudo nano /etc/docker/daemon.json

thêm đoạn cấu hình vào

{ "insecure-registries" : ["10.19.2.92:32000"]
}

Lưu lại và khởi động lại service docker

sudo systemctl restart docker

Bây giờ ta test cấu hình theo các bước:

  1. Pull image Nginx
docker pull nginx

  1. tag file image nginx -> 10.19.2.92:32000/big-dog-nginx
 docker tag nginx 10.19.2.92:32000/big-dog-nginx

  1. Push image 10.19.2.92:32000/big-dog-nginx lên registry
 docker push 10.19.2.92:32000/big-dog-nginx

Cấu hình microk8s

Microk8s 1.23 và các phiên bản mới hơn sử dụng các tệp máy chủ riêng biệt cho mỗi đăng ký hình ảnh. Đối với Cơ quan đăng ký http://10.19.2.92:32000, tiệp cấu hình sẽ ở /var/snap/microk8s/current/args/certs.d/10.19.2.92:32000

Đầu tiên, hãy tạo thư mục và tiệp nếu nó không tồn tại:

sudo mkdir -p /var/snap/microk8s/current/args/certs.d/10.19.2.92:32000
sudo touch /var/snap/microk8s/current/args/certs.d/10.19.2.92:32000/hosts.toml

Sau đó, chỉnh sửa tệp bạn vừa tạo và đảm bảo đúng nội dung như sau:

# /var/snap/microk8s/current/args/certs.d/10.19.2.92:32000/hosts.toml
server = "http://10.19.2.92:32000" [host."http://10.19.2.92:32000"]
capabilities = ["pull", "resolve"]

Lưu lại và khởi động lại dịch vụ microk8s

microk8s stop
microk8s start

Deploy và test image mới push

  1. Tạo tiệp big-dog-nginx-all.yaml
apiVersion: apps/v1
kind: Deployment
metadata: name: big-dog-nginx-deployment labels: app: nginx
spec: selector: matchLabels: app: big-dog-nginx template: metadata: labels: app: big-dog-nginx spec: containers: - name: big-dog-nginx image: 10.19.2.92:32000/big-dog-nginx ports: - containerPort: 80
--- apiVersion: v1
kind: Service
metadata: name: big-dog-nginx-svc labels: app: big-dog-nginx-svc
spec: type: NodePort selector: app: big-dog-nginx ports: - name: http port: 80 targetPort: 80 nodePort: 30039 protocol: TCP
  1. Run file big-dog-nginx-all.yaml
 microk8s kubectl apply -f big-dog-nginx-all.yaml

Có 2 cách để test:

  1. Vào port 30039 để kiểm tra : http://10.19.2.92:30039

  1. run dashboard để kiểm tra
microk8s dashboard-proxy

Nếu bạn thấy bài chia sẽ này hay xin hãy cho mình một like và đăng ký để ủng hộ mình nhé. Cảm ơn các bạn nhiều ♥️♥️♥️♥️

Link github để các bạn copy cho nhanh các tiệp

Bình luận

Bài viết tương tự

- vừa được xem lúc

Deploying A Containerized Web Application On Kubernetes

1. Overview. Kubernetes is an open source project (available on kubernetes.io) which can run on many different environments, from laptops to high-availability multi-node clusters; from public clouds to on-premise deployments; from virtual machines to bare metal.

0 0 55

- vừa được xem lúc

Kubernetes - Học cách sử dụng Kubernetes Namespace cơ bản

Namespace trong Kubernetes là gì. Tại sao nên sử dụng namespace.

0 0 113

- vừa được xem lúc

[Kubernetes] Kubectl và các command cơ bản

Mở đầu. Kubectl là công cụ quản trị Kubernetes thông qua giao diện dòng lệnh, cho phép bạn thực thi các câu lệnh trong Kubernetes cluster.

0 0 59

- vừa được xem lúc

Triển khai EFK Stack trên Kubernetes

EFK stack on K8S. Giới thiệu. Một hệ thống có thể chạy nhiều dịch vụ hoặc ứng dụng khác nhau, vì vậy việc. theo dõi hệ thống là vô cùng cần thiết.

0 0 72

- vừa được xem lúc

Thực hành Kubernetes (K8S) bằng cách sử dụng lệnh Command

Bài hướng dẫn hôm nay sẽ hướng dẫn sử dụng K8S bằng cách sử dụng câu lệnh thay vì UI trên web. Có 2 lựa chọn để thực hiện:. . Sử dụng Cloud Shell.

0 0 56

- vừa được xem lúc

Kubernetes best practices - Liveness và Readiness Health checks

Mở đầu. Kubernetes cung cấp cho bạn một framework để chạy các hệ phân tán một cách mạnh mẽ.

0 0 49