Deploy docker image ด้วย Redhat Openshift
เนื่องจากผมได้ไป deploy web ที่องค์กรหนึ่ง ซึ่งผมขอ docker server จึงได้ Redhat Openshift server มาตัวหนึ่ง ผมต้องทำการงมหาวิธีที่จะ deploy web ขึ้นไปให้ได้ เลยจะมาสรุปว่าเราจะสามารถใช้งาน Redhat Openshift อย่างไรได้บ้าง
https://www.openshift.com/ คือ web official ของ Redhat Openshift ซึ่งมันคือตัวจัดการ docker container ตัวหนึ่ง เป็นประเภทเดียวกับ Kubernetes หรือ Rancher นะครับ
ตอนแรกผมไม่รู้อะไรเลย ก็เริ่มจาก get started ก็จะส่วนที่เป็น document, overview, learn, และอื่นๆ โดยผมจะเริ่มจากตรงส่วน learn เลยเข้าไปที่ link นี้ https://learn.openshift.com/ ครับ
การใช้งาน openshift จะมีอยู่ 2 รูปแบบ คือ Command Line Interface (cli) กับ Web Console ในส่วนของ cli ถ้า download ผ่านเว็บ ถ้าผมเข้าใจไม่ผิดจะต้องทำการ signup และ activate user ก่อน แต่ผมหาช่องทาง download ผ่าน github release ของ openshift ที่ link: https://github.com/openshift/origin/releases
ในที่นี้ผมจะไม่กล่าวถึงการ host openshift นะครับ แต่จะกล่าวถึงการใช้งานเท่านั้น
เปิด terminal แล้วจากนั้น
ขั้นแรกก็ login
login ด้วยการ run
oc login <host_url> --username <username> --password <password>
ตัวอย่าง
oc login localhost:8888 --username admin --password pass
สร้าง project ใหม่
ด้วยการ run
oc new-project <project>
ตัวอย่าง
oc new-project myproject
เพิ่ม secret
เพื่อเข้าถึง private docker registry ได้
- login ที่ Web Console
- ไปที่ project ที่ต้องการ
- ไปที่เมนู Resources > Secrets
- กด create secret
- กรอกข้อมูลให้ครบถ้วน โดยเลือก Secret Type เป็น Image Secret เลือก Authentication Type เป็น Image Registry Credential และเลือก Service Account เป็น default แล้วก็กด create
เพิ่ม app ใหม่เข้าไปใน project
- ขั้นแรกต้อง pull docker image ลงที่เครื่องที่ run oc ก่อน กรณีนี้สำหรับ private docker registry นะ
- ขั้นต่อมาก็สร้าง app ด้วยการ run
oc new-app <docker_image>:<docker_image_tag> -l app=<app_name> -e <env_var>=<env_value> --name <name>
ตัวอย่าง
oc new-app node-api:latest -l app=backend -e NODE_ENV=production --name backend
- แล้วก็รอมัน start เสร็จ
ของที่ใช้หลักๆ ก็ประมาณนี้นะครับ