LoginSignup
2
1

More than 5 years have passed since last update.

CentOS7にk3sをインストールする

Last updated at Posted at 2019-04-28

k3sとは

先人の方々がすでに色々とやられているので、割愛。
https://qiita.com/search?q=k3s
しかし、ネットにあるCentOSへのインストール手順だと動かないので、動くものを作ってみた。

構成

VirtualBoxにて以下のVMを構築

  • MasterNode (CentOS7 Minimal Install)
    ネットワーク1:NAT (10.0.2.0/24)
    ネットワーク2:ホストオンリーアダプタ (192.168.56.0/24)
  • WorkerNode1 (CentOS7 Minimal Install)
    ネットワーク1:NAT (10.0.2.0/24)
    ネットワーク2:ホストオンリーアダプタ (192.168.56.0/24)

インストール手順

基本的には、以下をまるっとごそっとコピペしてもらえればよいはず。

MasterNode

sudo hostnamectl set-hostname master
sudo sed -i 's/.*127.0.0.1/#&/g' /etc/hosts
sudo sed -i '$a 127.0.0.1 master localhost' /etc/hosts
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo yum -y update
sudo yum -y install iptables-services
sudo systemctl start iptables
sudo systemctl enable iptables
sudo systemctl stop iptables
sudo yum -y install policycoreutils-python
sudo sed -i '/22/a -A INPUT -p tcp -m state --state NEW -m tcp --dport 6443 -j ACCEPT' /etc/sysconfig/iptables
sudo systemctl restart iptables
sudo sh -c "curl -sfL https://get.k3s.io | sh -"
sudo cat /var/lib/rancher/k3s/server/node-token

WorkerNode1

以下はMasterのインストールと並行で実施してよい。

sudo hostnamectl set-hostname worker1
sudo sed -i 's/.*127.0.0.1/#&/g' /etc/hosts
sudo sed -i '$a 127.0.0.1 worker1 localhost' /etc/hosts
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo yum -y update
sudo yum -y install iptables-services
sudo systemctl start iptables
sudo systemctl enable iptables
sudo yum -y install policycoreutils-python
sudo yum -y install wget
sudo wget https://github.com/rancher/k3s/releases/download/v0.4.0/k3s -O /usr/local/bin/k3s
sudo chmod +x /usr/local/bin/k3s

ノード追加(Worker側)

ノード追加は、Master側でk3sのインストールが完了してから実施する。

sudo /usr/local/bin/k3s agent --server https://192.168.56.101:6443 --token [★★★Masterのtoken★★★]

解説

ホスト名指定およびhostsファイル修正

ホスト名をmasterに変更し、hostsに"master"と"localhost"は"127.0.0.1"に設定。
これをしないと、k3sサーバ起動時にエラーが発生する。
https://tech-lab.sios.jp/archives/13564

sudo hostnamectl set-hostname master
sudo sed -i 's/.*127.0.0.1/#&/g' /etc/hosts
sudo sed -i '$a 127.0.0.1 master localhost' /etc/hosts

firewalld無効化、iptablesインストール

k3sはfirewalld配下では動作しないので、firewalldを無効化し、iptablesをインストールする。
また、k3sサーバに必要なポート6443を開放する。よくネットのインストール手順では、SELinuxを無効化するように記載されているが、無効化せずにインストールしてみたところ、インストール時に設定を変更しているように見える。
※製品側がSELinuxを無効にしろと記載していない限り、無効にしない方がよいと思う。

sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo yum -y update
sudo yum -y install iptables-services
sudo systemctl start iptables
sudo systemctl enable iptables
sudo systemctl stop iptables
sudo yum -y install policycoreutils-python
sudo sed -i '/22/a -A INPUT -p tcp -m state --state NEW -m tcp --dport 6443 -j ACCEPT' /etc/sysconfig/iptables
sudo systemctl restart iptables

k3sインストール

k3sをインストールする。※今回はエージェント込み(master自体もエージェントとなる)

sudo sh -c "curl -sfL https://get.k3s.io | sh -"

k3sトークン表示

workerノードを追加する際に必要なトークンを表示する

sudo cat /var/lib/rancher/k3s/server/node-token

動作確認

Masterノードにて、以下のコマンドを実行する。

sudo /usr/local/bin/k3s kubectl get node -o wide

次のような内容が出力され、masterおよびworker1が稼働していることが分かる。

[user@master ~]$ sudo /usr/local/bin/k3s kubectl get node -o wide
NAME      STATUS   ROLES    AGE   VERSION         INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION               CONTAINER-RUNTIME
master    Ready    <none>   70m   v1.14.1-k3s.4   10.0.2.4      <none>        CentOS Linux 7 (Core)   3.10.0-957.10.1.el7.x86_64   containerd://1.2.5+unknown
worker1   Ready    <none>   69m   v1.14.1-k3s.4   10.0.2.15     <none>        CentOS Linux 7 (Core)   3.10.0-957.10.1.el7.x86_64   containerd://1.2.5+unknown

今回はここまで。次回はこの上に色々とコンテナを立ててみようと思う。
※k3sのポートフォワードがイマイチ分からない...。

2
1
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
2
1