RancherOSにRancherサーバーをインストールする
概要RancherOSは、システムサービスを実行するためのPID 0としてシステムDockerデーモンを実行する、信じられないほど軽量なオペレーティングシステム(わずか約60 MB)です。
LXCコンテナー(Linuxコンテナー)は、単一のホスト上で複数の分離されたLinuxシステムを実行するために使用できるLinuxのオペレーティングシステム機能です。
これらの手順では、隔離されたLinuxコンテナをホストするためのサーバー構成の基本的な手順を説明します。次の機能を設定します。
ssh [email protected]
およびと同じくらい簡単なコンテナー管理のためのSSH転送ssh [email protected]
このガイドでは、次のことを前提としています。
チュートリアルの最後に、インターネットにアクセスできるが、相互にpingできない2つの仮想コンテナーを取得します。example.com
からコンテナへのポート転送も設定します。Proxmoxパケットのツールを使用して、安全な構成と管理パネルを展開します。
LXCコンテナの管理にのみProxmoxを使用します。一般に、KVMもサポートしていますが、Vultrではネストされた仮想化は禁止されています。開始する前に、Proxmox ISOを公式Webサイトからダウンロードする必要があります。を使用しProxmox VE 5.0 ISO Installer
ます。デフォルト設定でイメージからOSをインストールし、仮想マシンを再起動します。また、ソースからproxmoxを手動でインストールすることもできますが、ほとんどの場合は必要ありません(こちらの手順に従ってください)。
SSHでホストに接続し、proxmoxテンプレートリストを更新して、コンテナに適したテンプレートをダウンロードします。
apt-get update
pveam update
pveam available
pveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
次に、Linuxブリッジに接続されたネットワークインターフェイスを備えたLinuxコンテナーを作成する必要があります。/etc/network/interfaces
次の行を開いて追加します。
auto vmbr1
iface vmbr1 inet static
address 10.100.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
システムの再起動後、Ubuntu 14.04
テンプレートから新しいコンテナを作成できます。
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.200/24,gw=10.100.0.1
を使用してコンテナを確認しpct list
、コンテナ#200で開始しpct start 200
、でシェルに入ることができますpct enter 200
。を使用して、ネットワーク設定とアドレスを確認することもできますip addr
。
コンテナ内でインターネット接続を提供するには、を有効にする必要がありますNAT
。次の例では、NATテクノロジーを利用して、コンテナーからインターネットにトラフィックを転送できます。vmbr0
ブリッジは、外部インターフェースに接続され、vmbr1
ブリッジが容器に接続されています。
sysctl -w net.ipv4.ip_forward=1
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
iptables --append FORWARD --in-interface vmbr1 -j ACCEPT
コンテナーを入力し、pct enter 200
内部にWebサーバーを構成します。
apt-get update
apt-get install nginx
service nginx start
exit
次に、サーバー上でNginxを構成して、Webサイトをコンテナーにプロキシする必要があります。
apt-get update
apt-get install nginx
/etc/nginx/sites-available/box200
次の内容で新しい構成ファイルを作成します。
server {
listen 80;
server_name server200.example.com;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
location / {
proxy_pass http://10.100.0.200/;
}
}
Nginxはserver200.example.com
、サーバーからコンテナへの各HTTPリクエストをIP 10.100.0.200でプロキシします。この構成をアクティブにします。
ln -s /etc/nginx/sites-available/box200 /etc/nginx/sites-enabled/
service nginx restart
サンドボックスに簡単にアクセスできるようにする場合は、SSHセッションをコンテナに転送する必要があります。そのためには、ルートサーバーに新しいユーザーを作成します。パスワードを入力することを忘れないでください、他のパラメータは必要ありません。
adduser box200
su - box200
ssh-keygen
cat .ssh/id_rsa.pub
exit
このSSHキーをコピーし、コンテナを入力してキーを追加します。
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
サーバーで、次の行を.ssh/authorized_keys
ファイルに追加します。
command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
<YOUR SSH KEY>
自宅の公開鍵に変更することを忘れないでください。または、コマンドラインから次のコマンドを実行することもできます。
echo 'command="ssh [email protected]",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
次に、sshを使用してサンドボックスに接続できます。
`ssh box200@<your_server_IP>`
いくつかのセキュリティ改善を実装する時が来ました。まず、デフォルトのSSHポートを変更します。次に、基本的なHTTP認証でProxmox管理ページを保護します。
nano /etc/ssh/sshd_config
コメントを外して行を変更する
#Port 22
に
Port 24000
sshを再起動します。
service ssh restart
新しいポートでsshに再接続します。
ssh root@<your_IP> -p 24000
ファイルを作成します/etc/default/pveproxy
。
ALLOW_FROM="127.0.0.1"
DENY_FROM="all"
POLICY="allow"
pveproxy
変更を有効にするために再起動します。
/etc/init.d/pveproxy restart
nginxを構成します(まだ実行していない場合)。
apt-get install nginx
service nginx restart
でデフォルト設定を作成します/etc/nginx/site-available/default
。
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
#auth_basic "Restricted";
#auth_basic_user_file htpasswd;
#location / { proxy_pass https://127.0.0.1:8006; }
}
有効なSSL証明書を取得し、nginx構成を更新します。たとえば、certboxとletsencryptを使用して実行できます。詳細については、ここをクリックしてください。
wget https://dl.eff.org/certbot-auto
chmod +x certbot-auto
./certbot-auto --nginx
これで、nginxの設定は次のようになります(または後で手動で変更できます)。ssl、auth、location行のコメントを外すことを忘れないでください。
server {
listen 80;
server_name example.com;
rewrite ^ https://$hostname.example.com$request_uri? permanent;
}
server {
listen 443 ssl;
server_name example.com;
ssl on;
auth_basic "Restricted";
auth_basic_user_file htpasswd;
location / { proxy_pass https://127.0.0.1:8006; }
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
}
Htpasswdジェネレーター/etc/htpasswd
を使用してファイルを作成します。
nano /etc/nginx/htpasswd
Nginxを再起動します
service nginx restart
これでhttps://example.com
、基本認証後の管理コンソールを表示できます。
コンテナはHTTPリクエストとSSHで利用できるようになりました。これで、外部サーバーからコンテナーへのポート転送を構成できます。たとえば、次の入力をマッピングexample.com:8080
する場合10.100.0.200:3000
。
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 8080 -j DNAT --to 10.100.0.200:3000
現在のルールを表示できます。
`iptables -t nat -v -L PREROUTING -n --line-number`
次のようにして、番号でルールを削除することもできます。
`iptables -t nat -D PREROUTING <#>`.
これで、あるコンテナから別のコンテナにアクセスできます。
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.0.250/24,gw=10.100.0.1
pct start 250
pct enter 250
ping 10.100.0.200
コンテナー250から200へのアクセスを制限する場合は、各コンテナーをパーソナルブリッジに接続し、ブリッジ間の転送を無効にする必要があります。
既存のコンテナを削除します。
pct stop 200
pct stop 250
pct destroy 200
pct destroy 250
の内容を変更します/etc/network/interfaces
。
auto vmbr1
iface vmbr1 inet static
address 10.100.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
auto vmbr2
iface vmbr2 inet static
address 10.100.2.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
reboot
システム
転送を有効にする
`sysctl -w net.ipv4.ip_forward=1`
これらの変更を永続的にするには、/etc/sysctl.conf
ファイルを編集して次のテキストを見つけます。
#net.ipv4.ip_forward=1
コメントを外します。
net.ipv4.ip_forward=1
を実行sysctl -p
して、変更をすぐに有効にすることもできます。
コンテナを作成します。
pct create 200 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=10.100.1.200/24,gw=10.100.1.1
pct create 250 /var/lib/vz/template/cache/ubuntu-14.04-standard_14.04-1_amd64.tar.gz -storage local-lvm -net0 name=eth0,bridge=vmbr2,ip=10.100.2.250/24,gw=10.100.2.1
pct start 200
およびでコンテナを開始しpct start 250
ます。
iptables
ルールをフラッシュします。
iptables -F
NATを有効にします。
iptables --table nat --append POSTROUTING --out-interface vmbr0 -j MASQUERADE
vmbr0
外部インターフェースを含むブリッジです。
外部インターフェースからの転送を許可します。
iptables --append FORWARD --in-interface vmbr0 -j ACCEPT
コンテナからインターネットへの転送を許可します。
iptables -A FORWARD -i vmbr1 -o vmbr0 -s 10.100.1.0/24 -j ACCEPT
iptables -A FORWARD -i vmbr2 -o vmbr0 -s 10.100.2.0/24 -j ACCEPT
他の転送をドロップします。
iptables -A FORWARD -i vmbr1 -j DROP
iptables -A FORWARD -i vmbr2 -j DROP
ここで、10.100.1.200
pingできるがping 8.8.8.8
できないこと10.100.2.250
、およびpingできるがping できないことを確認します。10.100.2.250
8.8.8.8
10.100.1.200
iptablesに関連するコマンドの順序は重要です。ルールを操作する最良の方法は、を使用することiptables-persistent
です。このパッケージは、ファイルにiptablesのルールを保存するのに役立ちます/etc/iptables/rules.v4
と/etc/iptables/rules.v6
、それは自動的にシステムの再起動後にそれらをロードすることができます。以下のようにインストールするだけです。
apt-get install iptables-persistent
YES
プロンプトが表示されたら選択します。
概要RancherOSは、システムサービスを実行するためのPID 0としてシステムDockerデーモンを実行する、信じられないほど軽量なオペレーティングシステム(わずか約60 MB)です。
はじめにDockerは、コンテナーとして実行されるプログラムをデプロイできるアプリケーションです。それは人気のあるGoプログラミング言語で書かれました
別のシステムを使用していますか?Dockerは、コンテナーとして実行されるプログラムをデプロイできるアプリケーションです。それは人気のある囲碁programminで書かれました
この記事では、Dockerコンテナー内にノードアプリケーションをデプロイする方法を示します。注:このチュートリアルでは、Dockerがインストールされており、
はじめにこのガイドでは、複数のAlpine Linux 3.9.0サーバーとPortainerを使用してDockerスウォームを作成および構成する方法について説明します。ご注意ください
Harbourは、Dockerイメージを格納および配布するオープンソースのエンタープライズクラスのレジストリサーバーです。HarbourはオープンソースのDockerディストリビューションを拡張しますb
Kubernetesは、サーバーのクラスタ全体でコンテナ化されたアプリケーションを管理するためにGoogleが開発したオープンソースのプラットフォームです。それは10年に基づいて構築され、
別のシステムを使用していますか?はじめにRancherは、コンテナーを実行し、プライベートコンテナーサービスを構築するためのオープンソースプラットフォームです。牧場主がベース
概要この記事は、kubernetesクラスターをkubeadmですぐに稼働できるようにすることを目的としています。このガイドでは、2台のサーバーを
この記事では、CoreOSにdocker-composeをインストールする方法について説明します。CoreOSでは、/ usr /フォルダーは不変なので、標準の/ usr / local / binパスは使用できません。
別のシステムを使用していますか?はじめにRancherは、コンテナーを実行し、プライベートコンテナーサービスを構築するためのオープンソースプラットフォームです。牧場主がベース
PHPアプリケーションは通常、Webサーバー、リレーショナルデータベースシステム、および言語インタープリター自体で構成されます。このチュートリアルでは、レバラギンになります
別のシステムを使用していますか?Dockerは、仮想コンテナー内でのソフトウェアのデプロイメントを可能にするアプリケーションです。それは囲碁プログラムで書かれました
別のシステムを使用していますか?はじめにSentryは、エラー追跡のためのオープンソースのソリューションです。Sentryは例外やその他の有用なメッセージをあちこちで追跡します
別のシステムを使用していますか?はじめにDocker Swarmは、個々のサーバーをコンピューターのクラスターに変えます。スケーリング、高可用性、
このチュートリアルでは、Dockerの基本的な使い方について説明します。Dockerがすでにインストールされていると思います。このチュートリアルの手順は、
Webアプリケーションを実行する場合、通常、マルチスレッドを使用するようにソフトウェアを変換することなく、リソースを最大限に活用したいと思いますo
私たちは皆、アプリケーションコンテナーを作成、管理、および複数のマシンに分散するプラットフォームであるDockerを知っています。Docker Inc.が提供するサービスt
前提条件Dockerエンジン1.8以降。最低4GBのディスク容量。4GB以上のRAM。ステップ1. DockerをインストールするSQL-Serverをインストールするには、Docker mus
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。
最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください
原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。
これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。
私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true
ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。
LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー
NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します
別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています
HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、