minishift101

Lab 2: Creating OpenShift applications

หลังจากที่เราได้ทำการสร้าง project จาก lab ที่แล้ว (Lab 1) ขั้นต่อไป เรามาทำการสร้าง Openshift application บน cluster.

1. Creating an app

การสร้าง App ใน Openshift cluster นั้นมีหลายวิธี

1.1 สร้าง app จาก souce code

เราใช้ command oc new-app ใช้สำหรับสร้าง app ใน Openshift โดยใช้ source code ที่มีอยู่แล้ว ไม่ว่าจาก local หรือ จาก repository ไม่ว่า github/gitlab. ถ้ามีการระบุ repository, new-app จะทำการตรวจสอบว่าควรใช้ build strategy แบบใด (Docker หรือ Source) และ new-app จะทำการตรวจสอบว่า ภาษาอะไร ที่ใช้ในการสร้าง app และใช้ builder ที่เหมาะสมกับ app ของเรา

การ build จาก local DockerFile:

$ oc new-app /path/to/local/ or /remote/Dockerfile

การ build จาก source code:

$ oc new-app path/to/local/ or /remote/repository.git

1.2 การสร้าง app ด้วย images จาก DockerHub

Openshift มี feature ที่รองรับ DockerHub โดยเราสามารถระบุ image ใน DockerHub ที่เราต้องการใช้ deploy app บน cluster, command new-app จะทำการสร้าง runnable image จาก image ที่เราระบุ

ยกตัวอย่าง, การสร้าง app จาก nginx image เราใช้ command ตามด้านล่าง:

$ oc new-app nginx

และ Openshift ไม่ได้จำกัดให้เราใช้งาน DockerHub registry อย่างเดียว, OpenShift สามารถรองรับการเข้าถึง Private registries ได้อีกด้วย:

$ oc new-app myregistry:8000/example/image

1.3 สร้าง app จาก Openshift template

Openshift templates คือ starter kit ที่ทาง Openshift ได้ปูทางเอาไว้ให้ developer สร้างหยิบไปใช้งานได้ทันที โดย templates มักจะครอบคลุม applications ที่เป็นที่นิยม และ ถูกนำไปใช้งานบ่อย เช่น Ruby, Node และ MongoDB

ตัวอย่าง nodejs template จะมีโครงสร้างตามด้านล่าง:

nodejs-ex
├── openshift
│   └── templates
│       ├── nodejs.json
│       ├── nodejs-mongodb.json
│       └── nodejs-mongodb-persistent.json
├── package.json
├── README.md
├── server.js
├── tests
│   └── app_test.js
└── views
    └── index.html

สำหรับการ Deploy เราเพียงแค่ run command ตามด้านล่าง:

$ oc new-app -f /path/to/nodejs.json

ถ้า template นี้ได้ถูกเก็บไว้ที่ repo อยู่แล้ว, เราสามารถสร้าง app จาก source code ตาม section 1.1

1.4 Creating an app from the OpenShift UI สร้าง app จาก Openshift UI

ถ้าเราไม่ต้องการสร้าง app จาก cli ผ่าน cmd/terminal, อีกทางเลือกนึงที่เรียกได้ว่า user-friendly กว่าคือการใช้ Openshift UI ซึ่งได้ถูกออกมาแบบมาให้ใช้งานง่าย โดยไม่ขึ้นกับ cli tool เรียกได้ว่าค่อนข้างสะดวก และย่นระยะเวลาในการเรียนรู้เพิ่มเติมเกี่ยวกับ cli tool (ยกตัวอย่างการใช้ kubernetes ซึ่งจะไม่ได้มี UI ให้เราใช้สร้าง projects, applications). OpenShift console จะมากับทุกๆ cluster ซึ่งสำหรับ local cluster ที่เรารันขึ้นมา URL/address จะแสดงไว้หลังจากที่เราสั่ง minishift start ตามที่เราได้ปฏิบัติไปแล้วใน setup:

$ minishift start
...

The server is accessible via web console at:
    https://192.168.64.11:8443/console

You are logged in as:
    User:     developer
    Password: <any value>

Login ผ่าน UI:

OpenShift login

ตามที่เราได้เห็นผ่านทาง cmd/terminal หลังจาก minishift start เราสามารถใช้ user developer ส่วน password จะเป็นอะไรก็ได้

หน้า Catalog:

OpenShift catalog

หลังจากที่ logic เข้ามาแล้ว เราจะเห็นหน้า Catalog ซึ่งก็มีตัวอย่าง applications ให้เราลองหยิบไป deploy บน local cluster ของเราได้ สามารถย้อนหลับไปดู command ที่ section 1.2

สามารถอ่านเพิ่มเติมได้ที่ reference เกี่ยวกับการใช้ new-app command เพื่อสร้าง OpenShift applications.

Good job, Keep it up !! ณ ตอนนี้ ทุกท่านได้ทราบวิธีการสร้าง applications ใน Openshift. ขั้นตอนต่อไป เรามาดูกันว่า เราะจัดการ applications ใน Openshift ย่างไร ที่ Lab ถัดไป (Lab 3)