https://dev.to/mesadhan/openshift-origin-3-11-okd-installation-on-a-centos-7-multi-node-cluster-1j11
Ringkasan
OpenShift Origin (OKD) adalah Distribusi Komunitas Kubernetes yang mendukung Red Hat OpenShift. Dibangun berdasarkan inti pengemasan kontainer OCI dan manajemen kluster kontainer Kubernetes, OKD juga dilengkapi dengan fungsionalitas manajemen siklus hidup aplikasi dan perkakas DevOps. OKD menyediakan platform aplikasi kontainer sumber terbuka yang lengkap
🔰1. Prasyarat
Kita dapat merencanakan untuk menginstal 3 mesin fisik atau VM, dan mereka harus terhubung di Internet
Distribution: Centos 7 linux [Os Minimal Installation]
IP Address: 192.168.31.182 with 8 GB, 2 Core
IP Address: 192.168.31.144 with 4 GB RAM, 2 Core
IP Address: 192.168.31.94 with 4 GB RAM, 2 Core
Login username: root
Password: 123456
Note: Mentioned ip address and credential uses just for references. Please take a look at
Prasyarat resmi
🔰2. Untuk mengakses dari jarak jauh melalui nama pengguna & kata sandi, perlu Menginstal dan Mengaktifkan OpenSSH
📗 Instal paket OpenSSH & net-tools, mulai dan tampilkan status layanan SSH, jalankan otomatis setelah reboot dan terakhir tampilkan Alamat IP mesin.
yum –y install openssh-server openssh-clients net-tools
systemctl start sshd
systemctl status sshd
systemctl enable sshd
ifconfig
Note: Now we can able to access those services through Terminal or Putty
🔰3. Langkah umum untuk semua mesin atau node [Di sini, Master, Compute, Infra], Login ke setiap mesin tunggal
📗 Langkah 1: Instal paket dasar
yum install -y wget git zile net-tools bind-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct openssl-devel httpd-tools python-cryptography python2-pip python-devel python-passlib java-1.8.0-openjdk-headless "@Development Tools"
yum update -y
yum install docker-1.13.1
systemctl start docker && systemctl enable docker && systemctl status docker
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sed -i -e "s/^enabled=1/enabled=0/" /etc/yum.repos.d/epel.repo
📗 Langkah 2: Tetapkan host untuk semua node, sehingga ansible di masa mendatang dapat berkomunikasi dengan semua mesin untuk otomatisasi
Buka file itu dan vi /etc/hosts
sertakan isinya
192.168.31.182 master.192.168.31.182.nip.io
192.168.31.144 compute.192.168.31.144.nip.io
192.168.31.94 infra.192.168.31.94.nip.io
Sekarang, mulai ulang layanan jaringan
service network restart
📗 Langkah 3: Masuk ke setiap mesin dan atur nama host untuk semua node
hostnamectl set-hostname hostname.<machine-ip>.nip.io
Contoh untuk semua mesin:
hostnamectl set-hostname master.192.168.31.182.nip.io
hostnamectl set-hostname compute.192.168.31.144.nip.io
hostnamectl set-hostname infra.192.168.31.94.nip.io
Note: Remember each machine has only one hostname, so don't put all hostname in a single machine.
📗 Langkah4: Ubah '/etc/NetworkManager/NetworkManager.conf' sehingga setelah me-reboot wifi-router setiap kali, DNS tidak akan berubah.
buka file ini vi /etc/NetworkManager/NetworkManager.conf
, sertakan kontennya
[main]
#plugins=ifcfg-rh,ibft
dns=none
📗 Langkah 5: Ubah ifconfig label information
, dan gunakan DNS Google
ifconfig
cd /etc/sysconfig/network-scripts
Di sini, label saya adalah ifcfg-ens33
, jadi vi ifcfg-ens33
dan sertakan kontennya
PEERDNS="no"
DNS1="8.8.8.8"
📗 Langkah 6: Ubah resolv.conf
file, untuk memperbarui nameserver & mencari secara global
terbuka vi /etc/resolv.conf
, termasuk isi
search nip.io
nameserver 8.8.8.8
📗 Langkah 7: Mulai ulang pengelola jaringan & layanan jaringan
systemctl restart layanan NetworkManager
restart jaringan
📗 Langkah 8: Ubah pengaturan Selinux pada Master, Compute, Infra
terbuka vi /etc/selinux/config
, termasuk isi
SELINUX=enforcing
SELINUXTYPE=targeted
📗 Langkah 9: Nyalakan ulang mesin
reboot
Note: For unknown behaviors, we can restart network manager & service
🔰4. Terakhir, masuk ke Master Machine dan ikuti petunjuk di bawah ini,
📗 Langkah 1: buat kunci ssh dan salin kunci publik ke mesin atau node lain, agar kita dapat berkomunikasi tanpa nama pengguna dan kata sandi. Ini diperlukan untuk SSH.
ssh-keygen
for host in master.192.168.31.182.nip.io \
master.192.168.31.182.nip.io \
compute.192.168.31.144.nip.io \
infra.192.168.31.94.nip.io; \
do ssh-copy-id -i ~/.ssh/id_rsa.pub $host;
done
📗 Langkah 2: Setelah mem-boot semua mesin, kita dapat melakukan ping dari terminal mesin eksternal atau perintah
ping google.com
ping master.192.168.31.182.nip.io
ping compute.192.168.31.144.nip.io
ping infra.192.168.31.94.nip.io
Catatan:
ping VM to VM = Ok
ping Host to VM = Ok
ping www.google.com = Ok
📗 Langkah 3: instal ansible 2.7 di node master
rpm -Uvh https://releases.ansible.com/ansible/rpm/release/epel-7-x86_64/ansible-2.7.10-1.el7.ans.noarch.rpm
ansible --version
📗 Langkah 4: Sekarang, klon openshift-ansible
repositori, dan ganti cabang rilis 3.11
git clone https://github.com/openshift/openshift-ansible.git
cd openshift-ansible && git fetch && git checkout release-3.11
📗 Langkah 5: Buat hosts.ini
konfigurasi anible,
# Create an OSEv3 group that contains the masters, nodes, and etcd groups
[OSEv3:children]
masters
nodes
etcd
# Set variables common for all OSEv3 hosts
[OSEv3:vars]
# SSH user, this user should allow ssh based auth without requiring a password
ansible_ssh_user=root
# If ansible_ssh_user is not root, ansible_become must be set to true
ansible_become=true
openshift_master_default_subdomain=app.192.168.31.94.nip.io
deployment_type=origin
[nodes:vars]
openshift_disable_check=disk_availability,memory_availability,docker_storage
[masters:vars]
openshift_disable_check=disk_availability,memory_availability,docker_storage
# uncomment the following to enable htpasswd authentication; defaults to DenyAllPasswordIdentityProvider
openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
# host group for masters
[masters]
192.168.31.182
# host group for etcd
[etcd]
192.168.31.182
# host group for nodes, includes region info
[nodes]
192.168.31.182 openshift_node_group_name='node-config-master'
192.168.31.144 openshift_node_group_name='node-config-compute'
192.168.31.94 openshift_node_group_name='node-config-infra'
📗 Langkah 5: Jalankan playbook ansible dengan hosts.ini
konfigurasi,
ansible-playbook -i hosts.ini playbooks/prerequisites.yml
ansible-playbook -i hosts.ini playbooks/deploy_cluster.yml
Catatan: Jika Anda prerequisites.yml
tidak mengalami kesalahan apa pun, maka Anda dapat bersiap untuk deploy_cluster.yml
. Setelah beberapa jam kemudian, Anda dapat melihat layar ini. Saya harap wajah Anda akan berseri-seri seperti wajah saya! 🤩
📗 Langkah 6: Buat Pengguna Admin, sehingga kita dapat masuk ke konsol web, kita juga dapat melihat URL konsol web
htpasswd -c /etc/origin/master/htpasswd admin
oc status
Catatan: Kami telah membuat pengguna admin, jadi gunakan kredensial tersebut untuk melanjutkan.
Setelah 5 jam (tergantung pada kecepatan internet dan sumber daya node), berhasil memasang private cloud pada platform aplikasi kontainer open-source menggunakan centos 7 dengan 3 node. Sangat menyenangkan. Mungkin terjadi kesalahan jika koneksi jaringan Anda buruk dan sumber daya mesin atau node (CPU, RAM) tidak berfungsi dengan baik.
👌 Selamat. Terima kasih atas waktu dan semangat Anda.
Jangan ragu untuk berkomentar, jika Anda memiliki masalah dan pertanyaan.
🔰 Referensi:
Terima kasih telah mengunjungi Komunitas DEV. Silakan sampaikan apresiasi Anda dengan mengomentari postingan ini!
Hanya butuh satu menit dan bermanfaat bagi karier Anda.
Tidak ada komentar:
Posting Komentar