OpenShift - Cluster
OpenShift sử dụng hai phương pháp cài đặt để thiết lập cụm OpenShift.
- Phương pháp cài đặt nhanh chóng
- Phương pháp cấu hình nâng cao
Thiết lập cụm
Phương pháp cài đặt nhanh
Phương pháp này được sử dụng để chạy cấu hình thiết lập cụm nhanh chóng. Để sử dụng phương pháp này, trước tiên chúng ta cần cài đặt trình cài đặt. Điều này có thể được thực hiện bằng cách chạy lệnh sau.
Interactive method
$ atomic-openshift-installer install
Điều này hữu ích khi một người muốn chạy một thiết lập tương tác.
Unattended installation method
Phương pháp này được sử dụng khi một người muốn thiết lập một phương pháp cài đặt không cần giám sát, trong đó người dùng có thể xác định tệp yaml cấu hình và đặt nó dưới ~/.config/openshift/với tên của installer.cfg.yml. Sau đó, có thể chạy lệnh sau để cài đặt–u tag.
$ atomic-openshift-installer –u install
Theo mặc định, nó sử dụng tệp cấu hình nằm dưới ~/.config/openshift/. Mặt khác, Ansible được sử dụng như một bản sao lưu cài đặt.
version: v2
variant: openshift-enterprise
variant_version: 3.1
ansible_log_path: /tmp/ansible.log
deployment:
ansible_ssh_user: root
hosts:
- ip: 172.10.10.1
hostname: vklnld908.int.example.com
public_ip: 24.222.0.1
public_hostname: master.example.com
roles:
- master
- node
containerized: true
connect_to: 24.222.0.1
- ip: 172.10.10.2
hostname: vklnld1446.int.example.com
public_ip: 24.222.0.2
public_hostname: node1.example.com
roles:
- node
connect_to: 10.0.0.2
- ip: 172.10.10.3
hostname: vklnld1447.int.example.com
public_ip: 10..22.2.3
public_hostname: node2.example.com
roles:
- node
connect_to: 10.0.0.3
roles:
master:
<variable_name1>: "<value1>"
<variable_name2>: "<value2>"
node:
<variable_name1>: "<value1>"
Ở đây, chúng ta có biến vai trò cụ thể, có thể được xác định nếu một người muốn thiết lập một số biến cụ thể.
Sau khi hoàn tất, chúng ta có thể xác minh cài đặt bằng lệnh sau.
$ oc get nodes
NAME STATUS AGE
master.example.com Ready 10d
node1.example.com Ready 10d
node2.example.com Ready 10d
Cài đặt nâng cao
Cài đặt nâng cao hoàn toàn dựa trên cấu hình Ansible, trong đó có cấu hình máy chủ hoàn chỉnh và định nghĩa các biến liên quan đến cấu hình nút và chính. Điều này chứa tất cả các chi tiết liên quan đến cấu hình.
Khi chúng tôi đã thiết lập xong và playbook đã sẵn sàng, chúng tôi có thể chỉ cần chạy lệnh sau để thiết lập cụm.
$ ansible-playbook -i inventry/hosts ~/openshift-ansible/playbooks/byo/config.yml
Thêm máy chủ vào một cụm
Chúng ta có thể thêm một máy chủ vào cụm bằng cách sử dụng -
- Công cụ cài đặt nhanh
- Phương pháp cấu hình nâng cao
Quick installation toolhoạt động ở cả chế độ tương tác và không tương tác. Sử dụng lệnh sau.
$ atomic-openshift-installer -u -c </path/to/file> scaleup
Định dạng thay đổi tỷ lệ của giao diện tệp cấu hình ứng dụng có thể được sử dụng để thêm cả nút chính và nút.
Phương pháp cấu hình nâng cao
Trong phương pháp này, chúng tôi cập nhật tệp máy chủ của Ansible và sau đó thêm một nút hoặc chi tiết máy chủ mới trong tệp này. Tệp cấu hình trông giống như sau.
[OSEv3:children]
masters
nodes
new_nodes
new_master
Trong cùng một tệp máy chủ Ansible, hãy thêm các chi tiết biến liên quan đến nút mới như được hiển thị bên dưới.
[new_nodes]
vklnld1448.int.example.com openshift_node_labels = "{'region': 'primary', 'zone': 'east'}"
Cuối cùng, sử dụng tệp máy chủ đã cập nhật, chạy cấu hình mới và gọi tệp cấu hình để hoàn tất thiết lập bằng lệnh sau.
$ ansible-playbook -i /inventory/hosts /usr/share/ansible/openshift-ansible/playbooks/test/openshift-node/scaleup.yml
Quản lý Nhật ký Cụm
Nhật ký cụm OpenShift không là gì khác ngoài các nhật ký được tạo từ máy chủ và máy nút của cụm. Chúng có thể quản lý bất kỳ loại nhật ký nào, bắt đầu từ nhật ký máy chủ, nhật ký chính, nhật ký vùng chứa, nhật ký nhóm, v.v. Có nhiều công nghệ và ứng dụng hiện có để quản lý nhật ký vùng chứa.
Một số công cụ như được liệt kê có thể được triển khai để quản lý nhật ký.
- Fluentd
- ELK
- Kabna
- Nagios
- Splunk
ELK stack- Ngăn xếp này rất hữu ích khi cố gắng thu thập nhật ký từ tất cả các nút và trình bày chúng ở định dạng có hệ thống. Ngăn xếp ELK chủ yếu được chia thành ba loại chính.
ElasticSearch - Chủ yếu chịu trách nhiệm thu thập thông tin từ tất cả các thùng chứa và đưa nó vào vị trí trung tâm.
Fluentd - Được sử dụng để cung cấp các bản ghi đã thu thập cho động cơ chứa co giãn.
Kibana - Giao diện đồ họa được sử dụng để trình bày dữ liệu thu thập được dưới dạng thông tin hữu ích trong giao diện đồ họa.
Một điểm chính cần lưu ý là, khi hệ thống này được triển khai trên cụm, nó bắt đầu thu thập nhật ký từ tất cả các nút.
Chẩn đoán nhật ký
OpenShift có sẵn oc adm dignosticslệnh với OC có thể được sử dụng để phân tích nhiều tình huống lỗi. Công cụ này có thể được sử dụng từ chính với tư cách là quản trị viên cụm. Tiện ích này rất hữu ích trong việc khắc phục sự cố và xác định các vấn đề đã biết. Điều này chạy trên máy khách chính và các nút.
Nếu chạy mà không có bất kỳ agruments hoặc cờ nào, nó sẽ tìm kiếm các tệp cấu hình của máy khách, máy chủ và nút machnies và sử dụng chúng để chẩn đoán. Người ta có thể chạy chẩn đoán riêng lẻ bằng cách chuyển các đối số sau:
- AggregatedLogging
- AnalyzeLogs
- ClusterRegistry
- ClusterRoleBindings
- ClusterRoles
- ClusterRouter
- ConfigContexts
- DiagnosticPod
- MasterConfigCheck
- MasterNode
- MetricsApiProxy
- NetworkCheck
- NodeConfigCheck
- NodeDefinitions
- ServiceExternalIPs
- UnitStatus
Người ta có thể đơn giản chạy chúng bằng lệnh sau.
$ oc adm diagnostics <DiagnosticName>
Nâng cấp một cụm
Nâng cấp cụm liên quan đến việc nâng cấp nhiều thứ trong cụm và định vị địa lý cho cụm được cập nhật với các thành phần mới và các gói nâng cấp. Điều này liên quan đến -
- Nâng cấp các thành phần chính
- Nâng cấp các thành phần nút
- Nâng cấp các chính sách
- Nâng cấp các tuyến đường
- Nâng cấp luồng hình ảnh
Để thực hiện tất cả các nâng cấp này, trước tiên, chúng tôi cần phải có các trình cài đặt hoặc utils nhanh chóng tại chỗ. Vì vậy, chúng tôi cần cập nhật các tiện ích sau:
- atomic-openshift-utils
- atomic-openshift-excluder
- atomic-openshift-docker-excluder
- gói etcd
Trước khi bắt đầu nâng cấp, chúng ta cần sao lưu etcd trên máy chủ, có thể thực hiện bằng các lệnh sau.
$ ETCD_DATA_DIR = /var/lib/origin/openshift.local.etcd
$ etcdctl backup \
--data-dir $ETCD_DATA_DIR \
--backup-dir $ETCD_DATA_DIR.bak.<date>
Nâng cấp các thành phần chính
Trong OpenShift master, chúng tôi bắt đầu nâng cấp bằng cách cập nhật tệp etcd và sau đó chuyển sang Docker. Cuối cùng, chúng tôi chạy trình thực thi tự động để đưa cụm vào vị trí cần thiết. Tuy nhiên, trước khi bắt đầu nâng cấp, trước tiên chúng ta cần kích hoạt các gói openshift nguyên tử trên mỗi bản chính. Điều này có thể được thực hiện bằng cách sử dụng các lệnh sau.
Step 1 - Loại bỏ các gói mở nguyên tử
$ atomic-openshift-excluder unexclude
Step 2 - Nâng cấp etcd trên tất cả các bậc thầy.
$ yum update etcd
Step 3 - Khởi động lại dịch vụ của etcd và kiểm tra xem nó đã bắt đầu thành công chưa.
$ systemctl restart etcd
$ journalctl -r -u etcd
Step 4 - Nâng cấp gói Docker.
$ yum update docker
Step 5 - Khởi động lại dịch vụ Docker và kiểm tra xem nó đã được khởi động chính xác chưa.
$ systemctl restart docker
$ journalctl -r -u docker
Step 6 - Sau khi hoàn tất, khởi động lại hệ thống bằng các lệnh sau.
$ systemctl reboot
$ journalctl -r -u docker
Step 7 - Cuối cùng, chạy trình thực thi nguyên tử để đưa các gói trở lại danh sách loại trừ yum.
$ atomic-openshift-excluder exclude
Không có sự bắt buộc nào như vậy đối với việc nâng cấp chính sách, nó chỉ cần được nâng cấp nếu được khuyến nghị, có thể kiểm tra bằng lệnh sau.
$ oadm policy reconcile-cluster-roles
Trong hầu hết các trường hợp, chúng tôi không cần cập nhật định nghĩa chính sách.
Nâng cấp các thành phần nút
Sau khi cập nhật chính hoàn tất, chúng tôi có thể bắt đầu nâng cấp các nút. Một điều cần lưu ý là thời gian nâng cấp phải ngắn để tránh bất kỳ loại vấn đề nào trong cụm.
Step 1 - Xóa tất cả các gói OpenShift nguyên tử khỏi tất cả các nút mà bạn muốn thực hiện nâng cấp.
$ atomic-openshift-excluder unexclude
Step 2 - Tiếp theo, vô hiệu hóa lập lịch nút trước khi nâng cấp.
$ oadm manage-node <node name> --schedulable = false
Step 3 - Sao chép tất cả các nút từ máy chủ hiện tại sang máy chủ khác.
$ oadm drain <node name> --force --delete-local-data --ignore-daemonsets
Step 4 - Nâng cấp thiết lập Docker trên máy chủ.
$ yum update docker
Step 5 - Khởi động lại dịch vụ Docker và sau đó khởi động nút dịch vụ Docker.
$systemctl restart docker
$ systemctl restart atomic-openshift-node
Step 6 - Kiểm tra xem cả hai đã khởi động đúng chưa.
$ journalctl -r -u atomic-openshift-node
Step 7 - Sau khi nâng cấp xong, khởi động lại máy nút.
$ systemctl reboot
$ journalctl -r -u docker
Step 8 - Bật lại lập lịch trên các nút.
$ oadm manage-node <node> --schedulable.
Step 9 - Chạy trình thực thi nguyên tử-openshift để lấy lại gói OpenShift trên nút.
$ atomic-openshift-excluder exclude
Step 10 - Cuối cùng, kiểm tra xem tất cả các nút đã có sẵn hay chưa.
$ oc get nodes
NAME STATUS AGE
master.example.com Ready 12d
node1.example.com Ready 12d
node2.example.com Ready 12d