Saat itu sore musim gugur yang dingin di tahun 2019 dan saya duduk di belakang meja kerja saya dengan secangkir teh panas yang mengepul setelah berdiskusi dengan manajer saya. Saya akhirnya memutuskan untuk mengambil inisiatif dalam merencanakan migrasi situs web produksi global dari satu mesin virtual ke cloud. Saya sudah memiliki pengalaman dengan Nginx dan Apache sebagai administrator mesin virtual. Bagian kedua dari deskripsi pekerjaan saya adalah pengembangan fitur situs web di PHP. Saya tahu bahwa memahami persyaratan dari perspektif pengembang dan administrator akan menjadi penting untuk pendekatan saya dalam menerapkan tumpukan pengembang WordPress di OpenShift. Motivasi saya sebagai anak muda adalah untuk mengeksplorasi dan mempelajari teknologi baru saat melakukan eksperimen pertama saya di lingkungan kotak pasir yang aman.
[ Anda mungkin juga menyukai:Belajar OpenShift dengan Minishift ]
Saya menyadari bahwa sebelum bekerja dengan OpenShift di lingkungan produksi, saya perlu memiliki pemahaman yang kuat tentang komponen produk dan bagaimana mereka berinteraksi satu sama lain. Dalam beberapa minggu mendatang, saya menghabiskan waktu untuk mempersiapkan ujian Red Hat OpenShift Administration II dan mencari jawaban atas pertanyaan saya dari arsitek OpenShift jika diperlukan.
Ketika saya tidak belajar untuk ujian, saya melihat fitur produk OpenShift 4. Saya dapat melihat bahwa, untuk situs web global, banyak dari fitur tersebut sangat penting dan akan membuat pengalaman pengembangan saya menjadi lebih mudah. Berikut adalah beberapa manfaatnya:
- Ketersediaan tinggi
- Mengotomatiskan penskalaan
- Manajemen aplikasi
- Sistem operasi ringan
Konfigurasi dan penerapan aplikasi
Berikut beberapa catatan yang perlu diingat:
- Dalam artikel ini, saya tidak melalui pemilihan layanan hosting atau langkah-langkah penginstalan OpenShift 4.
- Kode sumber dan basis data yang digunakan dalam panduan ini adalah contoh dan tidak mencerminkan atau menggunakan data dari situs web produksi mana pun.
- Panduan ini berasal dari pengalaman pribadi saya saat bekerja dengan alat yang disebutkan di bawah.
- Jika cluster OpenShift Anda dapat diakses secara publik, alih-alih konfigurasi build berbasis Docker, Anda dapat menggunakan konfigurasi build berbasis Sumber.
1) Cloud IDE - Red Hat CodeReady
Catatan :Saya menggunakan dokumen ini sebagai referensi.
Prasyarat:
- peran admin cluster
Langkah-langkah:
Buat proyek baru:
$ oc new-project wordpress-deploy
Pada menu dasbor kiri, klik Operator tab dan navigasikan ke OperatorHub tab. Ubah Proyek di sisi kiri atas halaman untuk wordpress-deploy
proyek. Pilih Red Hat CodeReady Workspaces dan klik Pasang tombol. Di Instal Operator halaman, pilih Pilih ruang nama yang ada dan pastikan bahwa wordpress-deploy
ruang nama dipilih. Terakhir, klik tombol Instal tombol.

Setelah penginstalan, lanjutkan dengan mengeklik Lihat Operator tombol. Di bawah API yang Disediakan , klik Buat Instance .

Pada Buat CheCluster halaman, pertahankan setelan default dan klik Buat tombol.
Verifikasi pemasangan Operator Ruang Kerja Red Hat CodeReady:
$ oc get csv -n wordpress-deploy
NAME DISPLAY VERSION REPLACES PHASE
crwoperator.v2.4.0 Red Hat CodeReady Workspaces 2.4.0 Succeeded
Verifikasi bahwa semua pod dalam kondisi Berjalan status dan Siap . Untuk melacak kemajuan instalasi, ikuti log operator. Harap diperhatikan bahwa Rute tidak bersiaplah sampai log dari pod operator menunjukkan "Ruang Kerja CodeReady sekarang tersedia di http://xyz.org". Mungkin perlu beberapa menit.
$ oc get pods -n wordpress-deploy
NAME READY STATUS RESTARTS AGE
codeready-5d7b8f64d6-2rzkm 1/1 Running 0 60s
codeready-operator-5bc96f8c5f-c7hbt 1/1 Running 0 7m56s
devfile-registry-786f455b84-t45l8 1/1 Running 0 2m8s
keycloak-688b5d48f5-mgqn4 1/1 Running 0 2m41s
plugin-registry-8fb66b5cb-9kw8q 1/1 Running 0 99s
postgres-785f5864b-mmlpx 1/1 Running 0 5m1s
$ oc logs codeready-operator-5bc96f8c5f-c7hbt -f
...
time="2020-10-28T14:29:29Z" level=info msg="CodeReady Workspaces is now available at: https://codeready-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org"
...
Ambil rute codeready:
$ oc get route -n wordpress-deploy | grep codeready
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
codeready codeready-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org che-host 8080 edge/Redirect None
Kunjungi rute codeready dan perbarui Informasi Akun . Anda . Di bawah Memulai tab, pilih PHP CakePHP tumpukan.


Verifikasi bahwa Red Hat CodeReady Workspace telah dibuat:

2) CI/CD bagian 1 - Instal Tekton CLI dan OpenShift Pipelines
Catatan :Sebagai referensi, saya menggunakan tutorial openshift/pipelines ini. Jika tertarik, Anda dapat memeriksa Konsep tingkat tinggi OpenShift Pipelines. Untuk kasus saya, saya memilih Tekton tetapi jangan ragu untuk menggunakan Jenkins, CircleCI, atau alat saluran pipa lainnya yang disukai oleh Anda atau perusahaan Anda.
Tekton adalah framework open-source asli Kubernetes yang kuat namun fleksibel untuk menciptakan sistem continuous integration dan continuous delivery (CI/CD). Ini memungkinkan Anda membangun, menguji, dan menerapkan di beberapa penyedia cloud atau sistem lokal dengan mengabstraksikan detail implementasi yang mendasarinya. Peta Jalan Tekton Pipelines 2020.
Langkah-langkah:
Instal Tekton CLI (tkn) dari sini sesuai dengan file readme di repositori.
Instal Operator Pipa OpenShift.
Verifikasi pemasangan Tekton CLI dan Operator Pipa:
$ tkn version
Client version: 0.13.1
$ oc get csv -n wordpress-deploy
NAME DISPLAY VERSION REPLACES PHASE
crwoperator.v2.4.0 Red Hat CodeReady Workspaces 2.4.0 Succeeded
openshift-pipelines-operator.v1.0.1 OpenShift Pipelines Operator 1.0.1 Succeeded
3) Terapkan template khusus yang membuat pod aplikasi
Catatan :Saya menggunakan contoh kode sumber dari repositori Github.
Langkah-langkah:
Unduh file template menggunakan curl
perintah:
$ curl -O https://raw.githubusercontent.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4/master/deploy/openshift-template.yaml
Unggah template ke namespace Anda:
$ oc create -f openshift-template.yaml
Sebelum membuat aplikasi, daftar terlebih dahulu variabel yang diperlukan untuk template:
$ oc process --parameters wordpress-nginx-php
NAME DESCRIPTION GENERATOR VALUE
NAME The name assigned to all of the frontend objects defined in this template. expression wordpress-[a-f0-9]{6}
NAMESPACE The OpenShift Namespace where the ImageStream resides.
APP_MEMORY_LIMIT Maximum amount of memory limits the App container can use. 512Mi
APP_CPU_LIMIT Maximum amount of cpu limits the App container can use. 200m
APP_MEMORY_REQUEST Maximum amount of memory requests the App container can use. 512Mi
APP_CPU_REQUEST Maximum amount of cpu requests the App container can use. 200m
DB_MEMORY_LIMIT Maximum amount of memory limits the MariaDB container can use. 512Mi
DB_CPU_LIMIT Maximum amount of cpu limits the MariaDB container can use. 200m
DB_MEMORY_REQUEST Maximum amount of memory requests the MariaDB container can use. 512Mi
DB_CPU_REQUEST Maximum amount of cpu requests the MariaDB container can use. 200m
DB_VOLUME_CAPACITY Volume space available for DB data, e.g. 512Mi, 2Gi 1Gi
FILES_VOLUME_CAPACITY Volume space available for sites/default/files, e.g. 512Mi, 2Gi 1Gi
ROUTER_CANONICAL_HOSTNAME Clusters Router Canonical Hostname is self-explanatory.
MYSQL_DATABASE wordpress
MYSQL_USER wordpress
MYSQL_ROOT_PASSWORD Password for the MySQL root user. expression [a-zA-Z0-9]{16}
MYSQL_PASSWORD expression [a-zA-Z0-9]{16}
Proses template yang disediakan termasuk nilai parameter Anda:
$ oc process wordpress-nginx-php -p NAME=wordpress -p NAMESPACE=wordpress-deploy -p ROUTER_CANONICAL_HOSTNAME=apps.tgabriel-test.y2pm.s1.devshift.org -p MYSQL_ROOT_PASSWORD=nKatIcTRIToR -p MYSQL_PASSWORD=eSoiDenThicO | oc create -f -
Verifikasi bahwa semua pod dalam kondisi Berjalan atau Selesai status:
$ oc get pods -n wordpress-deploy
NAME READY STATUS RESTARTS AGE
codeready-5dc8dcd6f8-xm6tx 1/1 Running 0 69m
codeready-operator-864446f6b-dpp52 1/1 Running 0 74m
keycloak-7c4f96b7d9-m6nv9 1/1 Running 0 72m
phpmyadmin-1-build 0/1 Completed 0 11m
phpmyadmin-1-deploy 0/1 Completed 0 3m36s
phpmyadmin-1-fmt7b 1/1 Running 0 3m28s
postgres-769b855b45-tlhcs 1/1 Running 0 73m
wordpress-app-1-build 0/1 Completed 0 11m
wordpress-app-1-25p6n 2/2 Running 0 2m28s
wordpress-app-1-7mc4z 2/2 Running 0 2m28s
wordpress-app-1-deploy 0/1 Completed 0 2m43s
4) CI/CD bagian 2 - Jalankan pipeline Tekton
Langkah-langkah:
Periksa daftar sumber daya yang dibuat:
$ tkn resource ls
NAME TYPE DETAILS
app-git git url: https://github.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4
app-image image url: image-registry.openshift-image-registry.svc:5000/wordpress-deploy/openshift-nginx-phpfpm-s2i
$ tkn task ls
NAME AGE
openshift-client 58 seconds ago
s2i-php 1 minute ago
$ tkn pipeline ls
NAME AGE LAST RUN STARTED DURATION STATUS
build-and-deploy 3 minutes ago openshift-nginx-phpfpm-deploy-pipelinerun-vt7cf 3 minutes ago 1 minutes Succeeded
Pantau saluran Tekton:
$ tkn pipeline logs -f
...
[deploy : oc] build.build.openshift.io/wordpress-2 started
...
Untuk memulai proses pipeline baru:
$ tkn pipeline start build-and-deploy-2 -w name=shared-workspace,volumeClaimTemplateFile=https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/01_pipeline/03_persistent_volume_claim.yaml -p deployment-name=wordpress -r app-git=app-git -r app-image=app-image -s pipeline
5) Impor data produksi sampel menggunakan CLI
Catatan :Karena ukuran file database yang diekspor, kami akan melanjutkan menggunakan perintah CLI. Harap dicatat bahwa dengan memanfaatkan alat impor Phpmyadmin, Anda akan mendapatkan kesalahan 504 Gateway Time-out karena batas impor Phpmyadmin.
Langkah-langkah:
Masuk ke dalam wadah pod DB:
$ oc get pods -n wordpress-deploy
NAME READY STATUS RESTARTS AGE
phpmyadmin-1-build 0/1 Completed 0 19h
phpmyadmin-1-deploy 0/1 Completed 0 19h
phpmyadmin-1-fjhfn 1/1 Running 0 19h
wordpress-app-1-8jtzg 2/2 Running 0 19h
wordpress-app-1-build 0/1 Completed 0 19h
wordpress-app-1-deploy 0/1 Completed 0 19h
wordpress-app-1-ks48k 2/2 Running 0 19h
wordpress-app-db-1-bcmnn 1/1 Running 0 19h
wordpress-app-db-1-build 0/1 Completed 0 19h
wordpress-app-db-1-deploy 0/1 Completed 0 19h
$ oc rsh wordpress-app-db-1-bcmnn
sh-4.2$
Impor file cadangan menggunakan CLI:
sh-4.2$ curl -O https://raw.githubusercontent.com/Tessg22/making-a-wordpress-developer-stack-on-openshift-4/master/deploy/database_backup.sql
sh-4.2$ mysql -h 127.0.0.1 -u root -D wordpress < database_backup.sql
(Opsional) Di dalam wp_options
tabel, edit situs web dan rumah nilai yang sesuai dengan jalur aplikasi Anda.
Dapatkan rute aplikasi WordPress:
$ oc get route wordpress-app
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
wordpress-app wordpress-app-wordpress-deploy.apps.tgabriel-test.y2pm.s1.devshift.org wordpress-app <all> None
Kunjungi rute aplikasi, di mana Anda akan melihat Beranda aplikasi .

[ Dapatkan ebook gratis ini:Mengelola kluster Kubernetes Anda untuk boneka. ]
Menutup
Panduan ini memberikan titik awal yang baik untuk membuat tumpukan pengembang WordPress Anda di OpenShift 4 dan mempersiapkan Anda untuk konfigurasi yang sukses.
Sumber daya dan kredit
- Repositori kode sumber
- Drupal di OpenShift:Menerapkan situs Drupal pertama Anda
- Drupal di OpenShift:Meningkatkan pengalaman pengembang