การปรับใช้ Javascript Unikernels เป็น Vultr
Unikernels เป็นระบบปฏิบัติการเดี่ยว ซึ่งแตกต่างจากระบบปฏิบัติการทั่วไปเช่น Linux unikernels ไม่สามารถเรียกใช้หลายโปรแกรมในอินสแตนซ์ของเซิร์ฟเวอร์เดียวกันได้ Unikernels ถูกสร้างขึ้นโดยการรวบรวมภาษาระดับสูงให้เป็นอิมเมจเครื่องที่ทำงานโดยตรงบนไฮเปอร์ไวเซอร์หรือโลหะเปลือย บทช่วยสอนนี้ปรับใช้เว็บเซิร์ฟเวอร์ "hello world" แบบธรรมดาถึง Vultr
ข้อกำหนดเบื้องต้น
-
ระบบปฏิบัติการที่เหมือน UNIX รวมไปถึง:
- MacOS
- Debian
- อูบุนตู
- Fedora
- Centos
-
จัดเตรียมVultr วัตถุการจัดเก็บข้อมูลสถานที่ตั้ง
- จดบันทึกชื่อโฮสต์ Object Storage ของคุณ ส่วนแรกเรียกว่าโซนในบทช่วยสอนนี้ ตัวอย่างเช่นถ้าชื่อโฮสต์ของคุณ ewr1.vultrobjects.com โซนของคุณเป็นewr1 กวดวิชานี้ใช้ตัวอย่างเช่นโซนewr1
-
ที่ใช้งานคีย์บัญชี API ตรวจสอบให้แน่ใจว่าคีย์ API ของคุณอนุญาตให้เข้าถึงได้จากที่อยู่ IP ของคุณ
ติดตั้ง Ops
ดาวน์โหลดและติดตั้ง Ops:
curl https://ops.city/get.sh -sSfL | sh
นอกจากนี้คุณยังสามารถสร้างได้จากแหล่งที่มาที่มีอยู่ใน https://github.com/nanovms/ops
- คุณอาจต้องรีบู๊ตหลังการติดตั้งเพื่อให้ Ops ทำงานได้อย่างถูกต้อง
ปรับใช้ Unikernel แรกของคุณ
สร้างไดเรกทอรีทำงาน
$ mkdir opstest
$ cd opstest
สร้างที่ฝากข้อมูล Vultr Object Storage ใช้ชื่อที่ไม่ซ้ำ
สร้างไฟล์ชื่อconfig.json
ที่ระบุชื่อVultr Object Storage Bucket และโซนของewr1
คุณ
{
"CloudConfig" :{
"Zone": "ewr1",
"BucketName":"your_unique_bucket_name"
}
}
hi.js
สร้างไฟล์ชื่อ แอปพลิเคชั่นที่เรียบง่ายนี้จะสร้างเว็บเซิร์ฟเวอร์ให้ฟังบนพอร์ต 8083 และตอบกลับ "Hello World"
var http = require('http');
console.log("I'm running on Vultr");
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8083, "0.0.0.0");
console.log('Server running!');
ส่งออกตัวแปรสภาพแวดล้อมต่อไปนี้
export TOKEN=my_api_token
export VULTR_ACCESS=my_vultr_object_storage_access_key
export VULTR_SECRET=my_vultr_object_storage_secret_key
สร้างอิมเมจ Unikernel
ขั้นตอนถัดไป:
- รวมแพ็กเกจโหนด 13.6ด้วยแอ็พพลิเคชันhi.js JavaScript เป็นอิมเมจดิสก์ unikernel
- อัปโหลดดิสก์อิมเมจ. imgไปยัง Vultr Object Storage
- อิมพอร์ตอิมเมจดิสก์จาก Vultr Object Storage ไปยัง Vultr Cloud snapshot
รันคำสั่งต่อไปนี้เพื่อดำเนินการขั้นตอนเหล่านั้นในการดำเนินการเดียว
$ ops image create -t vultr -c config.json -z ewr1 -p node_v13.6.0 -a hi.js
รายการภาพเพื่อค้นหารหัสภาพของภาพรวมใหม่
$ ops image list -z ewr1 -t vultr
ใช้รหัสรูปภาพในคอลัมน์ที่สองเพื่อสร้างอินสแตนซ์จากภาพรวม
$ ops instance create -z ewr1 -t vultr -i my_id
ตรวจสอบว่า Vultr Cloud ทำงานอยู่
$ ops instance list -z ewr1 -t vultr
นำทางไปยัง URL ของคุณสำหรับที่อยู่ IP ของอินสแตนซ์
$ curl -XGET http://192.0.2.1:8083/
Hello World
คุณได้ปรับใช้ unikernel "hello world" ข้อมูลเพิ่มเติมเกี่ยวกับ unikernels และ Ops สามารถดูได้ที่: https://nanovms.gitbook.io/ops/vultrและhttps://ops.city/