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?

Ubuntu で Kubernetes 三昧その3

Last updated at Posted at 2025-06-20

Ubuntu で Kubernetes 三昧その2の続きです。

Container Runtimesを入れます。この説明にしたがいます。

IPv4 packet forwarding を有効にします。

$ cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.ipv4.ip_forward = 1
EOF
net.ipv4.ip_forward = 1

再起動しても有効になるように設定します。

$ sudo sysctl --system
$ sudo shutdown -r now

確認します。

$ sysctl net.ipv4.ip_forward

CRI をインストールします。containerd を入れましょう。
とりあえず、ホストマシンに containerd-2.1.3-linux-amd64.tar.gz をダウンロードしました。これを仮想マシンに送るため、ホストアダプタを有効化しました。
既存のアダプタは、「NATネットワーク」にしています。

マスター1で

$ ip a
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
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:9e:cb:2f brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 506sec preferred_lft 506sec
    inet6 fe80::a00:27ff:fe9e:cb2f/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:91:4f:22 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.107/24 brd 192.168.56.255 scope global dynamic noprefixroute enp0s8
       valid_lft 506sec preferred_lft 506sec
    inet6 fe80::8193:8bef:9f55:246b/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

ワーカー1で

$ ip a

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
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:b2:38:f1 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.7/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3
       valid_lft 464sec preferred_lft 464sec
    inet6 fe80::a00:27ff:feb2:38f1/64 scope link 
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:6b:f5:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.108/24 brd 192.168.56.255 scope global dynamic noprefixroute enp0s8
       valid_lft 464sec preferred_lft 464sec
    inet6 fe80::1300:2a81:41f2:2f41/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

そもそも、ssh サーバがはいっていないので、入れます。それぞれの仮想マシンでおこないます。

$ sudo apt install openssh-server
$ sudo systemctl enable --now ssh
$ systemctl is-enabled ssh
enabled
$ nc 127.0.0.1 22 -zv -w 2
Connection to 127.0.0.1 22 port [tcp/ssh] succeeded!

ホストマシンの公開鍵を、それぞれの仮想マシンの .ssh/authorized_keys にコピーしておきます。

.ssh/config に、マシンの指定(master1, worker1)をしたので、ファイルを転送します。

$ scp containerd-2.1.3-linux-amd64.tar.gz master1:/home/<user>
containerd-2.1.3-linux-amd64.tar.gz 

$ scp containerd-2.1.3-linux-amd64.tar.gz worker1:/home/fujiwara
containerd-2.1.3-linux-amd64.tar.gz 

これからは、仮想マシンに ssh でログインして作業を実施できます。

@masternode1:~$ sudo tar Cxzvf /usr/local containerd-2.1.3-linux-amd64.tar.gz
@workernode1:~$ sudo tar Cxzvf /usr/local containerd-2.1.3-linux-amd64.tar.gz
(表示)
bin/
bin/containerd
bin/containerd-shim-runc-v2
bin/ctr
bin/containerd-stress

systemd の unit ファイルをここからコピーして投入します。

@masternode1:~$ sudo mkdir -p /usr/local/lib/systemd/system
@masternode1:~$ sudo vim /usr/local/lib/systemd/system/containerd.service

@workernode1:~$ sudo mkdir -p /usr/local/lib/systemd/system
@workernode1:~$ sudo vim /usr/local/lib/systemd/system/containerd.service

containerd を起動します。

@masternode1:~$ sudo systemctl daemon-reload
@masternode1:~$ sudo systemctl enable --now containerd
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /usr/local/lib/systemd/system/containerd.service.

@workernode1:~$ sudo systemctl daemon-reload
@workernode1:~$ sudo systemctl enable --now containerd
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /usr/local/lib/systemd/system/containerd.service.

runc をインストールします。

@masternode1:~$ sudo install -m 755 runc.amd64 /usr/local/sbin/runc

CNI pluginsをインストールします。

@masternode1:~$ sudo mkdir -p /opt/cni/bin
@masternode1:~$ sudo tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.7.1.tgz 
@workernode1:~$ sudo mkdir -p /opt/cni/bin
@workernode1:~$ sudo tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.7.1.tgz 

(表示)
./
./dummy
./tap
./sbr
./bandwidth
./LICENSE
./host-device
./dhcp
./firewall
./loopback
./host-local
./static
./ipvlan
./vlan
./vrf
./bridge
./ptp
./portmap
./macvlan
./README.md
./tuning
root@masternode1:~# mkdir /etc/containerd
root@masternode1:~# containerd config default > /etc/containerd/config.toml
root@workernode1:~# mkdir /etc/containerd
root@workernode1:~# containerd config default > /etc/containerd/config.toml

systemd cgroup driver の設定を施します。

マスター、ワーカー両方で実施。
# vim /etc/containerd/config.toml
---
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
  ...
  [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true <<--- この行を追加
---
containerd を再起動する。
$ sudo systemctl restart containerd

Ubuntu で Kubernetes 三昧その4につづく。

参考:

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?