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 installTheo 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     10dCà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.ymlThê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_masterTrong 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.ymlQuả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 unexcludeStep 2 - Nâng cấp etcd trên tất cả các bậc thầy.
$ yum update etcdStep 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 etcdStep 4 - Nâng cấp gói Docker.
$ yum update dockerStep 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 dockerStep 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 dockerStep 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 excludeKhô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-rolesTrong 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 unexcludeStep 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 = falseStep 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-daemonsetsStep 4 - Nâng cấp thiết lập Docker trên máy chủ.
$ yum update dockerStep 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-nodeStep 6 - Kiểm tra xem cả hai đã khởi động đúng chưa.
$ journalctl -r -u atomic-openshift-nodeStep 7 - Sau khi nâng cấp xong, khởi động lại máy nút.
$ systemctl reboot
$ journalctl -r -u dockerStep 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 excludeStep 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