OpenShift là một Nền tảng phát triển đám mây miễn phí, mã nguồn mở và dưới dạng Dịch vụ (PaaS) do Red Hat phát triển cho phép các nhà phát triển phát triển và triển khai các ứng dụng của họ trên cơ sở hạ tầng đám mây. Đây là bản phân phối cộng đồng của Kubernetes và cho phép các chu kỳ phát triển và phát hành ứng dụng nhanh hơn. Nó đi kèm với một giao diện web đơn giản và dễ sử dụng cho phép bạn theo dõi tài nguyên container, tình trạng container, các nút mà container nằm trên đó, địa chỉ IP của các nút, v.v.
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt OpenShift Origin trên máy chủ Ubuntu 20.04.
Sau khi Docker được cài đặt, hãy khởi động dịch vụ Docker và cho phép nó khởi động khi khởi động bằng lệnh sau:
Bạn cũng có thể xác minh trạng thái của dịch vụ Docker bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Lúc này, Docker đã được cài đặt và đang chạy. Bây giờ bạn có thể tiến hành bước tiếp theo.
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, hãy thay đổi thư mục thành thư mục đã giải nén và sao chép các tệp nhị phân kubectl và oc vào thư mục /usr/local/bin.
Tiếp theo, hãy xác minh cài đặt tiện ích máy khách OpenShift bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, bạn sẽ cần tạo một tệp daemon.json mới và cho phép sử dụng sổ đăng ký Insecure Docker.
Thêm dòng sau:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ Docker để triển khai các thay đổi.
Sau khi máy chủ khởi động thành công, bạn sẽ nhận được kết quả sau:
Bây giờ, hãy đăng nhập vào cụm của bạn với tư cách là người dùng quản trị viên bằng lệnh sau:
Sau khi đăng nhập, bạn sẽ nhận được kết quả sau:
Tiếp theo, hãy chuyển sang dự án mặc định bằng lệnh sau:
Đầu ra:
Bây giờ, hãy xác minh trạng thái hiện tại của dự án bằng lệnh sau:
Bạn sẽ nhận được đầu ra sau:
Bạn sẽ được yêu cầu cung cấp tên người dùng và mật khẩu như hiển thị bên dưới:
Cung cấp tên người dùng là nhà phát triển và mật khẩu là nhà phát triển, sau đó nhấn Enter. Bạn sẽ thấy kết quả đầu ra sau:
Để tạo một dự án mới, hãy chạy lệnh sau:
Bạn sẽ thấy kết quả đầu ra sau:
Cung cấp tên người dùng và mật khẩu nhà phát triển của bạn, rồi nhấp vào nút Đăng nhập vào. Bạn sẽ thấy trang sau:
Nhấp vào nút Tạo Dự án. Bạn sẽ thấy trang sau:
Cung cấp tất cả thông tin bắt buộc và nhấp vào nút Tạo để tạo dự án mới.
Đăng nhập bằng người dùng nhà phát triển như hiển thị bên dưới:
Sau khi đăng nhập, hãy chuyển dự án sang my-project mà bạn đã tạo thông qua bảng điều khiển web OpenShift:
Đầu ra:
Tiếp theo, hãy xác minh trạng thái của dự án hiện tại của bạn bằng lệnh sau:
Đầu ra:
Tiếp theo, gắn thẻ hình ảnh ứng dụng từ sổ đăng ký Docker Hub bằng lệnh sau:
Đầu ra:
Tiếp theo, triển khai ứng dụng lên OpenShift bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bây giờ, hãy xác minh trạng thái triển khai ứng dụng bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Để biết thông tin về dịch vụ của bạn, hãy chạy lệnh sau:
Đầu ra:
Để biết thông tin chi tiết, hãy chạy lệnh sau:
Đầu ra:
Bạn cũng có thể xác minh trạng thái Pod bằng lệnh sau:
Đầu ra:
Bây giờ, hãy hiển thị ứng dụng để truy cập bên ngoài bằng lệnh sau:
Đầu ra:
Để hiển thị thông tin tuyến đường, hãy chạy lệnh sau:
Bạn sẽ nhận được đầu ra sau:
Nếu bạn muốn xóa ứng dụng của mình, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Trong hướng dẫn này, chúng tôi sẽ giải thích cách cài đặt OpenShift Origin trên máy chủ Ubuntu 20.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Mật khẩu gốc được cấu hình trên máy chủ của bạn.
Cài đặt Docker CE
Trước tiên, bạn sẽ cần cài đặt Docker CE trong hệ thống của mình để chạy tất cả các dịch vụ OKD trong các container docker. Theo mặc định, phiên bản Docker CE mới nhất có sẵn trong kho lưu trữ mặc định của Ubuntu 20.04. Bạn có thể cài đặt bằng cách chỉ cần chạy lệnh sau:
Mã:
apt-get install docker.io -y
Mã:
systemctl start docker[B]systemctl enable docker
Mã:
systemctl status docker
Mã:
? docker.service - Docker Application Container Engine Đã tải: đã tải (/lib/systemd/system/docker.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2020-05-29 12:25:47 UTC; 2 giây trướcĐược kích hoạt bởi: ? docker.socket Tài liệu: https://docs.docker.com PID chính: 48433 (dockerd) Nhiệm vụ: 10 Bộ nhớ: 36,5M CGroup: /system.slice/docker.service ??48433 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215078550Z" level=warning msg="Hạt nhân của bạn không hỗ trợ bộ nhớ hoán đổi l>29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215139097Z" level=warning msg="Hạt nhân của bạn không hỗ trợ cgroup blkio >Ngày 29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215169580Z" level=warning msg="Hạt nhân của bạn không hỗ trợ cgroup blkio >Ngày 29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.215721944Z" level=info msg="Đang tải container: bắt đầu."Ngày 29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.418058547Z" level=info msg="Cầu nối mặc định (docker0) được gán với >29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.515158041Z" level=info msg="Đang tải container: xong."29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.545778830Z" level=info msg="Docker daemon" commit=afacb8b7f0 graphdriver(>29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.546068892Z" level=info msg="Daemon đã hoàn tất khởi tạo"29 tháng 5 12:25:47 ubuntu2004 dockerd[48433]: time="2020-05-29T12:25:47.599029431Z" level=info msg="API lắng nghe trên /run/docker.sock"29 tháng 5 12:25:47 ubuntu2004 systemd[1]: Đã khởi động Docker Application Container Engine.
Tải xuống OpenShift Origin
Tại thời điểm viết hướng dẫn này, phiên bản mới nhất của OpenShift Origin là v3.11.0. Bạn có thể tải xuống từ kho lưu trữ Git Hub bằng lệnh sau:
Mã:
wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
Mã:
tar -xvzf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
Mã:
cd openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit
cp oc kubectl /usr/local/bin/
Mã:
oc version
Mã:
oc v3.11.0+0cbc58bkubernetes v1.11.0+d4cacc0features: Basic-Auth GSSAPI Kerberos SPNEGO
Mã:
nano /etc/docker/daemon.json
Mã:
{ "insecure-registries" : [ "172.30.0.0/16" ] }
Mã:
systemctl restart docker
Khởi động OpenShif Origin Cluster
Bây giờ, hãy khởi động cụm OpenShift Origin bằng cách chỉ định IP hệ thống của bạn:
Mã:
oc cluster up --public-hostname=your-server-ip
Mã:
Đăng nhập vào máy chủ ...Đang tạo dự án ban đầu "myproject" ...Thông tin máy chủ ...Máy chủ OpenShift đã khởi động.Có thể truy cập máy chủ thông qua bảng điều khiển web tại: https://your-server-ip:8443Bạn đã đăng nhập với tư cách: Người dùng: nhà phát triển Mật khẩu: Để đăng nhập với tư cách quản trị viên: oc login -u system:admin[/b]
Mã:
oc login -u system:admin
Mã:
Đã đăng nhập vào "https://your-server-ip:8443" với tư cách là "system:admin" bằng thông tin đăng nhập hiện có.Bạn có quyền truy cập vào các dự án sau và có thể chuyển đổi giữa chúng bằng 'oc project
': default kube-dns kube-proxy kube-public kube-system * myproject openshift openshift-apiserver openshift-controller-manager openshift-core-operators openshift-infra openshift-node openshift-service-cert-signer openshift-web-consoleSử dụng dự án "myproject".
Mã:
oc project default
Mã:
Bây giờ hãy sử dụng dự án "default" trên máy chủ "https://your-server-ip:8443".
Mã:
oc status
Mã:
Trong dự án mặc định trên máy chủ https://your-server-ip:8443svc/docker-registry - 172.30.1.1:5000 dc/docker-registry triển khai docker.io/openshift/origin-docker-registry:v3.11 triển khai #1 đã triển khai 2 phút trước - 1 podsvc/kubernetes - 172.30.0.1:443 -> 8443svc/router - 172.30.94.157 cổng 80, 443, 1936 dc/router triển khai docker.io/openshift/origin-haproxy-router:v3.11 triển khai #1 đã triển khai 2 phút trước - 1 podXem chi tiết bằng 'oc describe /' hoặc liệt kê mọi thứ bằng 'oc get all'.
Tạo dự án trên OpenShift
Bây giờ, hãy đăng nhập vào OpenShift bằng người dùng nhà phát triển với lệnh sau:
Mã:
oc login
Mã:
Yêu cầu xác thực cho https://your-server-ip:8443 (openshift)Tên người dùng: developerMật khẩu:
Mã:
Đăng nhập thành công.Bạn có một dự án trên máy chủ này: "myproject"Sử dụng dự án "myproject".
Mã:
oc new-project dev --display-name="Project - Dev" --description="My Project"
Mã:
Bây giờ sử dụng dự án "dev" trên máy chủ "https://your-server-ip:8443".Bạn có thể thêm các ứng dụng vào dự án này bằng lệnh 'new-app'. Ví dụ, hãy thử: oc new-app centos/ruby-25-centos7~https://github.com/sclorg/ruby-ex.gitđể xây dựng một ứng dụng ví dụ mới trong Ruby.
Truy cập OpenShift Web Console
Bây giờ, hãy mở trình duyệt web của bạn và nhập URL https://your-server-ip:8443/console. Bạn sẽ thấy trang đăng nhập OpenShift:Cung cấp tên người dùng và mật khẩu nhà phát triển của bạn, rồi nhấp vào nút Đăng nhập vào. Bạn sẽ thấy trang sau:
Nhấp vào nút Tạo Dự án. Bạn sẽ thấy trang sau:
Cung cấp tất cả thông tin bắt buộc và nhấp vào nút Tạo để tạo dự án mới.
Triển khai ứng dụng trên OpenShift Origin
Trước tiên, hãy đăng nhập vào OpenShift bằng người dùng nhà phát triển bằng cách chạy lệnh sau:
Mã:
oc login
Mã:
Yêu cầu xác thực cho https://your-server-ip:8443 (openshift)Tên người dùng: developerMật khẩu:Đăng nhập thành công.Bạn có thể truy cập vào các dự án sau và có thể chuyển đổi giữa chúng bằng lệnh 'oc project
': * dev my-project myprojectSử dụng dự án "dev".
Mã:
oc project my-project
Mã:
Bây giờ sử dụng dự án "my-project" trên máy chủ "https://your-server-ip:8443".
Mã:
oc status
Mã:
Trong dự án My Project (my-project) trên máy chủ https://your-server-ip:8443Bạn không có dịch vụ, cấu hình triển khai hoặc cấu hình dựng nào.Chạy 'oc new-app' để tạo ứng dụng.
Mã:
oc tag --source=docker openshift/deployment-example:v2 deployment-example:latest
Mã:
Tag deployment-example:latest được đặt thành openshift/deployment-example:v2.
Mã:
oc new-app deployment-example
Mã:
--> Đã tìm thấy hình ảnh da61bb2 (4 năm tuổi) trong luồng hình ảnh "my-project/deployment-example" dưới thẻ "latest" cho "deployment-example" * Hình ảnh này sẽ được triển khai trong cấu hình triển khai "deployment-example" * Cổng 8080/tcp sẽ được cân bằng tải bởi dịch vụ "deployment-example" * Các vùng chứa khác có thể truy cập dịch vụ này thông qua tên máy chủ "deployment-example" * CẢNH BÁO: Hình ảnh "my-project/deployment-example:latest" chạy dưới dạng người dùng 'root' mà quản trị viên cụm của bạn có thể không cho phép--> Đang tạo tài nguyên ... deploymentconfig.apps.openshift.io "deployment-example" đã tạo dịch vụ "deployment-example" đã tạo--> Ứng dụng thành công không được hiển thị. Bạn có thể công khai các dịch vụ ra thế giới bên ngoài bằng cách thực hiện một hoặc nhiều lệnh dưới đây: 'oc expose svc/deployment-example' Chạy 'oc status' để xem ứng dụng của bạn.
Mã:
oc status
Mã:
Trong dự án My Project (my-project) trên máy chủ https://your-server-ip:8443svc/deployment-example - 172.30.87.146:8080 dc/deployment-example triển khai istag/deployment-example:latest implementation #1 đã triển khai 36 giây trước - 1 podĐã xác định được 2 thông tin, hãy sử dụng 'oc status --suggest' để xem chi tiết.
Mã:
oc get svc
Mã:
NAME LOẠI CLUSTER-IP EXTERNAL-IP PORT(S) AGEdeployment-example ClusterIP 172.30.87.146 8080/TCP 1m
Mã:
oc describe svc implementation-example
Mã:
Tên: implementation-exampleKhông gian tên: my-projectNhãn: app=deployment-exampleChú thích: openshift.io/generated-by=OpenShiftNewAppBộ chọn: app=deployment-example,deploymentconfig=deployment-exampleLoại: ClusterIPIP: 172.30.87.146Cổng: 8080-tcp 8080/TCPCổng mục tiêu: 8080/TCPĐiểm cuối: 172.17.0.10:8080Session Affinity: NoneEvents:
Mã:
oc get pods
Mã:
NAME READY STATUS RESTARTS AGEdeployment-example-1-b9prf 1/1 Running 0 2m
Mã:
oc expose service/deployment-example
Mã:
route.route.openshift.io/deployment-example exposed
Mã:
oc get routes
Mã:
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARDdeployment-example implementation-example-my-project.your-server-ip.nip.io implementation-example 8080-tcp None
Xác minh quyền truy cập bên ngoài
Bây giờ, ứng dụng của bạn đã sẵn sàng để truy cập bên ngoài. Mở trình duyệt web của bạn và nhập URL ở trên http://deployment-example-my-project.your-server-ip.nip.io. Bạn sẽ thấy ứng dụng của mình trên trang sau:Nếu bạn muốn xóa ứng dụng của mình, hãy chạy lệnh sau:
Mã:
oc delete all -l app=deployment-example
Mã:
pod "deployment-example-1-b9prf" đã xóareplicationcontroller "deployment-example-1" đã xóaservice "deployment-example" đã xóadeploymentconfig.apps.openshift.io "deployment-example" đã xóaroute.route.openshift.io "deployment-example" đã xóa