0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

kubernetes the hard way on PC (3.VM作成)

Last updated at Posted at 2020-07-11

#初めに

kubernetes the hard way を PC でやってみる」の3回目、「VM作成」についてです。( 目次
今回も、kubernetes the hard way をやるための準備として、 VM作成について記載します。
(よってまだ kubernetes the hard way の入り口にもたどり着いていません。。。)

前提として、 メディアの準備と GUI の利用準備があります。
メディアについては、 ubuntu (server) のメディア(ISOイメージ) をダウンロードし、ホストPC 上に配置してください。

GUIについては、 Windows 10 上に Xming を導入、設定、表示しています。
導入については以下のページが参考になります。

Xming - https://mag.osdn.jp/09/10/14/0753240

※ただし、私自身は 上記URL の 図8 部分で "start no program" で設定しておき、その続きで以下の指定をしています。

  • Xming フォルダ内の X0.host に接続したい IP ( ホストPC の IP ) を追記
  • Xming 起動
  • ssh でホスト PC にログイン後、 DISPLAY 変数を設定し、GUI を使うプログラムを起動
    要は、ssh の X11 フォワーディングではなく、 X の直接接続をしているということです。
    まぁ、ここは重要ではなく、VM が作れればそれでよいので、コンソール上から実施しても構いません。

この記事は、以下の作業を行うという内容です。

  • virt-manager による VM作成
  • ubuntu の導入(最低限)
  • hosts の設定
  • ipv6 の無効化
  • nfs クライアントの導入

第2回と同様、 ipv6, nfs はほぼ趣味の問題なので必要であれば対応すればよいです。

図で言うと赤枠部分の作成になります。
(※図では k8smaster0 となっていますが、テンプレートとして別の名前、IP で作成しておき、 Clone します。)

03_5.png

#virt-manager による VM作成

ssh でホストPC にログイン後、 DISPLAY 変数を指定し、 virt-manager を起動します。
その際、日本語が文字化けするので、英語モードで起動しています。

[root@sakura ~]# export DISPLAY=192.168.199.108:0.0
[root@sakura ~]# LANG=C virt-manager

virt-manager が起動します。
05.png

File メニューから New virtual Machine を選択します。

06.png

インストールメディア選択画面では、 Local Install Media (ISO image or CD-ROM) を選択します。

07.png

Browse ボタンを押します。

08.png

メディアの選択画面が表示されます。

09.png

あらかじめホストPC 上に配置しておいた、 ubuntu20 の ISO イメージを選択します。

10.png

次の画面で、 OS のタイプを聞かれるため、 下部の検索 box に ubuntu と入力します。
すると、ポップアップで ubuntu の候補が出るため、最も近い Ubuntu 18.04 LTS を選択します。

11.png

指定が完了すれば、 Forward ボタンを押します。

12.png

Memory、 CPU 指定画面が表示されるため、指定します。
メモリは動きさえすれば少なくてもよいですが、 CPU は 2以上を指定してください。
(kubernetes の前提として 2論理CPU 以上が必要です。 kubeadm コマンドでセットアップする際などは Preflight Check でエラーになります)
指定後、 Forward ボタンを押します。

13.png

ディスク容量を指定します。ここも、後から追加もできますので少なくてよいです。

14.png

VM名を指定し、 Network Selection では、 ホストPC 上に作成したブリッジインターフェース (br0) を選択します。
選択後、Finish ボタンを押します。

15.png

カスタマイズ画面が表示されますので、必要であれば各項目を確認、修正し、Begin Installation ボタンを押します。

16.png

VMが作成され、起動されます。 

17.png

18.png

#ubuntu20 の導入
(※画像は若干加工しているものがあります)

言語選択画面が表示されるため、 English を選択し、 Done を押します。(日本語は無いようです。。。)
19.png

キーボードレイアウト選択画面では、 Layout 欄のドロップリストから Japanese を選択します。
variant は自動的に Japanese が選択されます。
その後、 Done を押します。

20.png

ネットワークの指定画面では、 enp0s1 に DHCP が指定されていますが、
固定にしますので、 Edit IPv4 を選択します。

21.png

固定にするため、 manual を選択します

22.png

IPv4 の情報を設定し、save を押します。

23.png

Network Connection 画面に戻るため、指定された内容になっていることを確認し、 Done を押します。
24.png

Proxy 画面では、何も指定せずに Done を押します。
25.png

ミラー指定画面では、デフォルトのままで Done を押します。
26.png

ストレージ設定画面では、 Use an entire disk が選択されていることを確認し、Done を押します。
(Custom で指定しても構いません)

27.png

FILE SYSTEM SUMMARY 画面が表示されるため、 Done を押します。
28.png

ディスクの内容が削除されるという警告が出ますが、Continue を押します。
29.png

Profile setup 画面では、ユーザー名、ホスト名、パスワードを指定し、Done を押します。
30.png

ssh setup 画面では、 Install OpenSSH Server にチェックを入れ、Done を押します。
31.png

Featured Server Snaps 画面では、何も選択せずに、Done を押します。
32.png

Install が開始され、完了したら Reboot ボタンを押し、再起動します。(画像なし)
33.png

作成したユーザーでログインできることを確認します。
34.png

以上で、最低限の ubuntu の導入が完了です。

#hosts の設定

作成したテンプレートから、 マスターノード、ワーカーノードを Clone していきますが、
共通の設定として名前解決を指定しておきます。今回は hosts ファイルに設定します。

192.168.199.200 k8smaster0 k8sapi
192.168.199.201 k8smaster1
192.168.199.202 k8smaster2

192.168.199.210 k8sworker0
192.168.199.211 k8sworker1
192.168.199.212 k8sworker2

ここで、 k8smaster0 に k8sapi とつけています。
これは、kube-apiserver のアクセス先として、IP や k8smaster0 ではなく、
k8sapi としておき、必要に応じて外部ロードバランサー等の IP に差し替えることにより
3台のmaster ノードの API サーバーを負荷分散で利用できるようにするための布石です。
ただ、今回、結局ロードバランサーまでは実施せず、 k8smaster0 上の API サーバーを使う形のままで終わりました。。。
(よってなくてもよいのですが、後々の作業で k8sapi を指定している部分があるため残しています)

#IPv6 無効化

さて趣味の IPv6 無効化ですが、 ubuntu 20 では バグなのだと思いますが
sysctl コマンドを用いた無効化の設定では、再起動後に有効に戻ってしまうようです。
そのため、ブートローダー grub のレベルで無効化します。

まず、 /etc/default/grub を修正します。
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1" を指定します。

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
GRUB_CMDLINE_LINUX=""

... 以下略

その後、 grub 設定を update します。 (update-grub)

root@ubuntu20-2:/etc/default# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.0-39-generic
Found initrd image: /boot/initrd.img-5.4.0-39-generic
done
root@ubuntu20-2:/etc/default#

再起動し、ログイン後、 ip コマンドで IPv6 が表示されないことを確認します。

root@ubuntu20-2:/etc/default# shutdown -r now
root@ubuntu20-2:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:a3:62:48 brd ff:ff:ff:ff:ff:ff
    inet 192.168.199.198/24 brd 192.168.199.255 scope global enp1s0
       valid_lft forever preferred_lft forever

#NFS クライアント導入

まぁ、、入れます。 apt コマンドで nfs-common を入れます。

root@ubuntu20-2:~# apt update && apt -y install nfs-common
Hit:1 http://jp.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://jp.archive.ubuntu.com/ubuntu focal-updates InRelease

...以下略

今回はここまでとして、次回は Clone 作成を行います。


2.ホストPC設定
目次
4.Clone 作成


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?