Menyebarkan Kubernet Dengan Kubeadm di CentOS 7
Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada
Aplikasi PHP biasanya disusun oleh server web, sistem basis data relasional dan juru bahasa itu sendiri. Dalam tutorial ini kita akan memanfaatkan tumpukan aplikasi PHP lengkap menggunakan buruh pelabuhan. Ini adalah tutorial mendalam di mana kita akan membangun dan mengatur wadah untuk Nginx (server web), MySQL (sistem basis data) dan PHP.
Demi tutorial ini, kami akan menulis aplikasi sederhana yang membaca daftar kota dari database dan menampilkannya di halaman web, dengan cara ini kami akan mendemonstrasikan aplikasi PHP yang dasar namun berfungsi.
Panduan ini mengasumsikan bahwa Anda memiliki Docker-CE yang sudah diinstal dan setidaknya pengetahuan tentang buruh pelabuhan yang minimal. Untuk itu, Anda dapat meninjau tutorial berikut:
Aplikasi berbasis buruh pelabuhan kehidupan nyata biasanya akan terdiri dari beberapa kontainer. Mengelola ini secara manual dapat dengan mudah menjadi sangat berantakan dan rumit. Di situlah komposisi buruh pelabuhan berperan. Ini membantu Anda untuk mengelola sejumlah kontainer melalui yaml
file konfigurasi sederhana .
Instal komposisi buruh pelabuhan.
curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Buat folder untuk menampung semua file yang diperlukan dari contoh ini dan kemudian cd
ke dalamnya. Mulai sekarang, ini adalah direktori kerja kami dan setiap perintah akan dieksekusi di dalam folder ini dan setiap jalur akan dirujuk relatif terhadapnya. Folder ini dapat direferensikan nanti sebagai WORKING_DIR
.
mkdir ~/docker
cd ~/docker
Sekarang buat tiga folder lagi.
mkdir php nginx app
The php
folder di mana kita akan membangun gambar kustom PHP kita, nginx
folder akan memegang file yang diperlukan untuk gambar nginx kebiasaan kami dan app
folder adalah di mana kita akan menempatkan kode sumber dan konfigurasi aplikasi sampel kami.
Dalam contoh ini, kita akan gunakan php-fpm
untuk terhubung ke server web Nginx. Kami akan menggunakan gambar dasar PHP resmi. Namun, kami juga perlu menginstal dan mengaktifkan beberapa ekstensi agar kami dapat mengakses database. Di dalam php
folder, buat file bernama Dockerfile
dan masukkan konten berikut ke dalamnya.
FROM php:7.1-fpm-alpine3.4
RUN apk update --no-cache \
&& apk add --no-cache $PHPIZE_DEPS \
&& apk add --no-cache mysql-dev \
&& docker-php-ext-install pdo pdo_mysql
Perhatikan bahwa kami menggunakan versi Alpine dari gambar PHP resmi. Alpine adalah distribusi yang sangat kecil yang ditargetkan ke kontainer dengan memberikan jejak kaki yang jauh lebih kecil. Juga, perhatikan penggunaan perintah docker-php-ext-install
, gambar PHP resmi menyediakan perintah ini untuk memudahkan proses menginstal dan mengkonfigurasi ekstensi PHP.
Sekarang, mari kita buat gambar Docker ini dengan mengeluarkan yang berikut (di dalam kita WORKING_DIR
):
docker build -t vultr-php php/
docker-compose.yml
fileSeperti yang telah disebutkan, docker-compose
memungkinkan Anda untuk mengelola sejumlah kontainer melalui file konfigurasi sederhana. File konfigurasi ini biasanya dinamai docker-compose.yml
. Buat file ini di dalam app
folder.
touch app/docker-compose.yml
Sekarang masukkan konten berikut ke dalam file ini.
version: '2'
services:
php:
image: vultr-php
volumes:
- ./:/app
working_dir: /app
Kami akan menjelaskan sintaks ini. Pertama, perhatikan baris pertama.
version: '2'
Ini menentukan versi docker-compose.yml
file konfigurasi yang digunakan. Baris berikutnya menentukan layanan, atau dengan kata lain, wadah yang akan disediakan.
services:
php:
image: vultr-php
volumes:
- ./:/app
working_dir: /app
Perhatikan bahwa setiap layanan memiliki kunci spesifik di dalam services
blok. Nama yang ditentukan di sini akan digunakan untuk referensi wadah khusus ini nanti. Perhatikan juga bahwa di dalam php
konfigurasi, kami mendefinisikan gambar yang digunakan untuk menjalankan wadah (ini adalah gambar yang kami buat sebelumnya). Kami juga mendefinisikan pemetaan volume.
volumes:
- ./:/app
Ini memberitahu docker-compose
untuk memetakan direktori saat ini ( ./
) ke /app
direktori di dalam wadah. Baris terakhir menetapkan /app
folder di dalam wadah sebagai direktori kerja, yang berarti bahwa ini adalah folder di mana semua perintah di masa depan di dalam wadah secara default dijalankan.
Kita sekarang dapat mengatur wadah kita.
cd ~/docker/app
docker-compose up -d
Anda dapat menjalankan perintah berikut untuk memastikan bahwa wadah PHP dieksekusi:
docker ps
Masih di dalam app
folder, kita dapat menjalankan perintah apa pun di dalam wadah layanan yang ditentukan dengan bantuan docker-compose
perintah.
docker-compose exec [service] [command]
The [service]
placeholder mengacu pada kunci layanan. Dalam kasus kami, ini php
. Mari kita jalankan perintah di dalam container untuk memeriksa versi PHP kita.
docker-compose exec php php -v
Anda akan melihat output berikut.
PHP 7.1.14 (cli) (built: Feb 7 2018 00:40:45) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies
Sama seperti wadah PHP, kita perlu membuat gambar khusus untuk server web. Tetapi dalam hal ini, kita hanya perlu menyediakan konfigurasi untuk kita virtual host
. Pastikan Anda ada di dalam kami WORKING_DIR
dan buat Dockerfile
di dalam nginx
folder:
cd ~/docker
touch nginx/Dockerfile
Sekarang masukkan konten berikut ke dalam ini Dockerfile
:
FROM nginx:1.13.8-alpine
COPY ./default.conf /etc/nginx/conf.d/default.conf
Kami menggunakan gambar Nginx default berdasarkan Alpine. Pada file Docker ini kita cukup menyalin file konfigurasi ke pengaturan aplikasi kita. Sebelum membangun gambar ini, buat file konfigurasi.
touch nginx/default.conf
Sekarang isi dengan konten ini.
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /app;
index index.php;
#server_name server_domain_or_IP;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Perhatikan bahwa pada fastcgi_pass php:9000
baris ini kita merujuk wadah PHP dengan namanya di dalam service
blok docker-compose.yml
file konfigurasi. Secara internal docker-compose
membuat jaringan dan menetapkan nama layanan sebagai nama host untuk setiap layanan yang ditentukan. Kita sekarang dapat membangun gambar Nginx.
docker build -t vultr-nginx nginx/
docker-compose.yml
Sekarang perbarui app/docker-compose.yml
file.
version: '2'
services:
php:
image: vultr-php
volumes:
- ./:/app
working_dir: /app
web:
image: vultr-nginx
volumes:
- ./:/app
depends_on:
- php
ports:
- 80:80
Kami hanya menambahkan layanan baru. Konfigurasi hampir sama, kecuali untuk yang berikut.
depends_on:
- php
ports:
- 80:80
Setelah wadah Nginx membutuhkan layanan PHP sepenuhnya diinisialisasi, kami memaksakan persyaratan ini dalam depends_on
opsi. The ports
kunci konfigurasi memetakan sebuah port host ke port kontainer, di sini kita memetakan pelabuhan 80
di host ke port 80
dalam wadah.
Sekarang buat file bernama index.php
di dalam app
folder dan letakkan yang berikut di dalamnya.
<?php phpinfo();
Pastikan port 80
dapat diakses melalui firewall Anda dan jalankan yang berikut ini.
cd ~/docker/app
docker-compose up -d
Sekali lagi, periksa kembali apakah layanan sudah habis.
docker ps
Buka browser dan akses [vultr-instance-ip]
. Anda dapat mengetahui alamat IP instance Vultr Anda dengan menjalankan yang berikut ini.
hostname -I
Anda akan melihat halaman info PHP.
Gambar MySQL resmi memungkinkan Anda untuk mengkonfigurasi wadah melalui variabel lingkungan sederhana. Ini dapat dilakukan dengan environment
opsi di dalam definisi blok layanan. Perbarui ~/docker/app/docker-compose.yml
file sebagai berikut.
version: '2'
services:
php:
image: vultr-php
volumes:
- ./:/app
working_dir: /app
web:
image: vultr-nginx
volumes:
- ./:/app
depends_on:
- php
ports:
- 80:80
mysql:
image: mysql:5.7.21
volumes:
- ./:/app
- dbdata:/var/lib/mysql
environment:
- MYSQL_DATABASE=world
- MYSQL_ROOT_PASSWORD=root
working_dir: /app
volumes:
dbdata:
Sekarang kami telah menetapkan layanan baru untuk basis data. Perhatikan garisnya dbdata:/var/lib/mysql
. Ini memasang jalur pada wadah /var/lib/mysql
ke volume persisten yang dikelola oleh Docker, dengan cara ini data database tetap ada setelah wadah dihapus. Volume ini perlu didefinisikan dalam blok tingkat atas seperti yang dapat Anda lihat di akhir file.
Sebelum mengatur konfigurasi baru kami, mari kita unduh contoh database MySQL. The dokumentasi MySQL resmi menyediakan beberapa database sampel. Kami akan menggunakan basis data dunia yang terkenal. Basis data ini menyediakan daftar negara dan kota. Untuk mengunduh sampel ini, jalankan yang berikut di dalam folder aplikasi kami.
curl -L http://downloads.mysql.com/docs/world.sql.gz -o world.sql.gz
gunzip world.sql.gz
Sekarang mari kita mengatur wadah kami.
docker-compose up -d
Seperti yang mungkin sudah Anda perhatikan, docker-compose up
perintah mulai hanya wadah yang belum dimulai. Ini memeriksa perbedaan antara docker-compose.yml
file Anda dan konfigurasi wadah yang sedang berjalan.
Sekali lagi, periksa apakah wadah MySQL sudah dimulai.
docker ps
Sekarang isi database dunia.
docker-compose exec -T mysql mysql -uroot -proot world < world.sql
Anda dapat memverifikasi bahwa basis data diisi dengan memilih data langsung dari basis data. Pertama, akses prompt MySQL di dalam wadah.
docker-compose exec mysql mysql -uroot -proot world
Di prompt MySQL, jalankan yang berikut ini.
select * from city limit 10;
Anda akan melihat daftar kota. Sekarang keluar dari prompt MySQL.
mysql> exit
Sekarang semua wadah yang diperlukan sudah aktif dan berjalan, kita dapat fokus pada aplikasi sampel kami. Perbarui app/index.php
file sebagai berikut.
<?php
$pdo = new PDO('mysql:host=mysql;dbname=world;charset=utf8', 'root', 'root');
$stmt = $pdo->prepare("
select city.Name, city.District, country.Name as Country, city.Population
from city
left join country on city.CountryCode = country.Code
order by Population desc
limit 10
");
$stmt->execute();
$cities = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Vultr Rocks!</title>
</head>
<body>
<h2>Most Populous Cities In The World</h2>
<table>
<thead>
<tr>
<th>Name</th>
<th>Country</th>
<th>District</th>
<th>Population</th>
</tr>
</thead>
<tbody>
<?php foreach($cities as $city): ?>
<tr>
<td><?=$city['Name']?></td>
<td><?=$city['Country']?></td>
<td><?=$city['District']?></td>
<td><?=number_format($city['Population'], 0)?></td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</body>
</html>
Jika Anda mengakses [vultr-instance-ip]
di browser web, Anda akan melihat daftar kota terpadat di dunia. Selamat, Anda telah menggunakan aplikasi PHP yang berfungsi penuh menggunakan buruh pelabuhan.
Dalam tutorial ini, saya telah menunjukkan langkah demi langkah cara mengkonfigurasi aplikasi PHP yang berfungsi penuh. Kami membuat gambar khusus untuk PHP dan Nginx, dan mengkonfigurasikan komposisi buruh pelabuhan untuk mengatur wadah kami. Meskipun sangat mendasar dan sederhana, pengaturan ini mencerminkan skenario kehidupan nyata.
Dalam panduan ini, kami telah membuat dan menandai gambar kami secara lokal. Untuk pengaturan yang lebih fleksibel, Anda dapat mendorong gambar-gambar ini ke register buruh pelabuhan . Anda dapat mendorong ke register buruh pelabuhan resmi atau bahkan mengatur registri buruh pelabuhan Anda sendiri. Bagaimanapun, ini akan memungkinkan Anda untuk membangun gambar Anda di satu host dan menggunakannya di yang lain.
Untuk penggunaan yang lebih rinci docker-compose
, Anda harus merujuk ke dokumentasi resmi .
Bergantung pada persyaratan aplikasi Anda dan kerangka kerja PHP yang Anda gunakan, Anda mungkin ingin menambahkan lebih banyak ekstensi. Ini dapat dengan mudah dilakukan dengan memodifikasi yang Dockerfile
digunakan untuk membangun gambar PHP khusus kami. Namun, beberapa ekstensi memerlukan dependensi tambahan untuk dipasang di wadah. Anda harus merujuk ke daftar ekstensi dalam dokumentasi resmi PHP untuk meninjau persyaratan dasar setiap ekstensi.
Ikhtisar Artikel ini dimaksudkan untuk membantu Anda mendapatkan kluster Kubernet dan menjalankan dengan kubeadm dalam waktu singkat. Panduan ini akan menggunakan dua server, pada
Rancher OS adalah distribusi Linux yang sangat ringan yang dibangun di sekitar Docker. OS itu sendiri berbobot sekitar 20MB. Tutorial ini akan membantu Anda menjalankan dan menjalankannya
Pendahuluan Docker adalah aplikasi yang memungkinkan kita untuk menyebarkan program yang dijalankan sebagai wadah. Itu ditulis dalam bahasa pemrograman Go populer
Menggunakan Sistem yang Berbeda? Docker adalah aplikasi yang memungkinkan untuk penyebaran perangkat lunak dalam wadah virtual. Itu ditulis dalam programmin Go
Harbor adalah server registri sumber terbuka kelas perusahaan yang menyimpan dan mendistribusikan gambar Docker. Harbor memperluas distribusi Docker sumber terbuka b
Artikel ini menjelaskan cara menginstal docker-compose di CoreOS. Di CoreOS, folder / usr / tidak dapat diubah sehingga jalur standar / usr / local / bin tidak tersedia untuk
Menggunakan Sistem yang Berbeda? Pendahuluan Rancher adalah platform sumber terbuka untuk menjalankan kontainer dan membangun layanan kontainer pribadi. Peternak adalah pangkalan
Menggunakan Sistem yang Berbeda? Pendahuluan Rancher adalah platform sumber terbuka untuk menjalankan kontainer dan membangun layanan kontainer pribadi. Peternak adalah pangkalan
Menggunakan Sistem yang Berbeda? Pendahuluan Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer; memfasilitasi penskalaan, ketersediaan tinggi an
Dengan bantuan aplikasi Vultr Docker, Anda dapat dengan mudah menggunakan Docker pada instance server Vultr Anda. Sementara itu, Anda dapat memfasilitasi tugas mengelola Docker
Kita semua tahu dan cinta Docker, sebuah platform untuk membuat, mengelola, dan mendistribusikan kontainer aplikasi di beberapa mesin. Docker Inc. menyediakan layanan t
Menggunakan Sistem yang Berbeda? Pendahuluan Sentry adalah solusi open source untuk pelacakan kesalahan. Sentry melacak pengecualian dan pesan berguna lainnya
Ikhtisar RancherOS adalah sistem operasi yang sangat ringan (hanya sekitar 60 MB) yang menjalankan daemon Docker sistem sebagai PID 0 untuk menjalankan layanan sistem
Kubernetes adalah platform sumber terbuka yang dikembangkan oleh Google untuk mengelola aplikasi kemas di sekelompok server. Itu dibangun di atas satu dekade dan
Menggunakan Sistem yang Berbeda? Pendahuluan Docker Swarm mengubah masing-masing server Anda menjadi sekelompok komputer, memfasilitasi penskalaan, ketersediaan tinggi dan
Tutorial ini menjelaskan dasar-dasar memulai Docker. Saya berasumsi bahwa Anda sudah menginstal Docker. Langkah-langkah dalam tutorial ini akan bekerja pada sebuah
Saat menjalankan aplikasi web, Anda biasanya ingin memaksimalkan sumber daya Anda tanpa harus mengonversi perangkat lunak Anda untuk menggunakan multithreading.
Prasyarat Mesin Docker 1.8+. Minimal 4GB ruang disk. Minimal RAM 4GB. Langkah 1. Instal Docker Untuk menginstal SQL-Server, Docker mus
Artikel ini akan menunjukkan kepada Anda bagaimana menyebarkan aplikasi Node Anda dalam wadah Docker. Catatan: Tutorial ini mengasumsikan bahwa Anda telah menginstal dan membaca Docker
Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1
Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.
Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.
Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.
Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.
CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?
Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.
Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!
Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.
Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut