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