Déployer Javascript Unikernels sur Vultr
Les Unikernels sont des systèmes d'exploitation à application unique. Contrairement aux systèmes d'exploitation à usage général comme Linux, les unikernels ne peuvent pas exécuter plusieurs programmes sur la même instance de serveur. Les Unikernels sont construits en compilant des langages de haut niveau dans des images de machine qui s'exécutent directement sur un hyperviseur ou du métal nu. Ce didacticiel déploie un simple serveur Web JavaScript «bonjour le monde» sur Vultr.
Conditions préalables
-
Un système d'exploitation de type UNIX, comprenant:
- MacOS
- Debian
- Ubuntu
- Feutre
- Centos
-
Un emplacement de stockage d'objets Vultr provisionné .
- Prenez note de votre nom d'hôte de stockage d'objets. La première partie est appelée zone dans ce didacticiel. Par exemple, si votre nom d'hôte est ewr1.vultrobjects.com, votre zone est ewr1 . Ce didacticiel utilise l'exemple de zone ewr1 .
-
Une clé API de compte active . Assurez-vous que votre clé API autorise l'accès à partir de votre adresse IP.
Installer Ops
Téléchargez et installez Ops:
curl https://ops.city/get.sh -sSfL | sh
Vous pouvez également le créer à partir de la source, disponible sur https://github.com/nanovms/ops .
- Vous devrez peut-être redémarrer après l'installation pour qu'Ops fonctionne correctement.
Déployez votre premier Unikernel
Créez un répertoire de travail.
$ mkdir opstest
$ cd opstest
Créez un compartiment de stockage d'objets Vultr. Utilisez un nom unique.
Créez un fichier nommé config.json
qui spécifie le nom de votre compartiment de stockage d'objets Vultr et la zone ewr1
.
{
"CloudConfig" :{
"Zone": "ewr1",
"BucketName":"your_unique_bucket_name"
}
}
Créez un fichier nommé hi.js
. Cette application simple génère un serveur Web pour écouter sur le port 8083 et répondre "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!');
Exportez les variables d'environnement suivantes.
export TOKEN=my_api_token
export VULTR_ACCESS=my_vultr_object_storage_access_key
export VULTR_SECRET=my_vultr_object_storage_secret_key
Créer l'image Unikernel
Prochaines étapes:
- Regroupez le package du nœud 13.6 avec l' application JavaScript hi.js dans une image disque unikernel.
- Téléchargez l' image disque .img sur Vultr Object Storage.
- Importez l'image disque de Vultr Object Storage vers un instantané Vultr Cloud.
Exécutez la commande suivante pour effectuer ces étapes en une seule action.
$ ops image create -t vultr -c config.json -z ewr1 -p node_v13.6.0 -a hi.js
Répertoriez l'image pour trouver l'ID d'image du nouveau cliché.
$ ops image list -z ewr1 -t vultr
Utilisez l'ID d'image dans la deuxième colonne pour créer une instance à partir de l'instantané.
$ ops instance create -z ewr1 -t vultr -i my_id
Vérifiez que l'instance Vultr Cloud est en cours d'exécution.
$ ops instance list -z ewr1 -t vultr
Accédez à l'URL de l'adresse IP de votre instance.
$ curl -XGET http://192.0.2.1:8083/
Hello World
Vous avez déployé le noyau unique "hello world". Plus d'informations sur les unikernels et les Ops sont disponibles sur: https://nanovms.gitbook.io/ops/vultr et https://ops.city/