Deploy docker image ด้วย Redhat Openshift

Aphichan Chaiyutthasart
Witsawa Corporation
2 min readNov 30, 2018

เนื่องจากผมได้ไป 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 เสร็จ

ของที่ใช้หลักๆ ก็ประมาณนี้นะครับ

--

--