GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にKubernetesクラスターをインストールする方法

はじめに

コンテナと呼ばれる小さな仮想環境 、アプリケーションの開発と管理に不可欠になっています。

分離されたコンテナ内でアプリケーションを操作しても、ホストオペレーティングシステムには影響しません。コンテナはオペレーティングシステムを必要としないため、仮想マシンよりも効率的です。

Kubernetes は、複数のコンテナにまたがるリソースの導入、拡張、管理を支援するオープンソースプラットフォームです。

このチュートリアルに従って、CentOS7システムにKubernetesをインストールする方法を学びます。

前提条件

  • CentOS 7を実行している複数のLinuxサーバー(1つのマスターノード、複数のワーカーノード)
  • sudoを使用するすべてのシステムのユーザーアカウント またはroot権限
  • yum パッケージマネージャー、デフォルトで含まれています
  • コマンドライン/ターミナルウィンドウ

CentOS7にKubernetesをインストールする手順

Kubernetesを使用するには、コンテナ化エンジンをインストールする必要があります 。現在、最も人気のあるコンテナソリューションは Docker 。 DockerはCentOSにインストールする必要があります。両方 マスターノードとワーカーノードで。

ステップ1:Kubernetesリポジトリを設定する

Kubernetesパッケージは、CentOS7の公式リポジトリからは入手できません。この手順は、マスターノード、およびコンテナのセットアップに使用する予定の各ワーカーノードで実行する必要があります。次のコマンドを入力して、Kubernetesリポジトリを取得します。

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

ステップ2: kubeletをインストールします 、 kubeadm 、および kubectl

これらの3つの基本パッケージは、Kubernetesを使用できるようにするために必要です。各ノードに次のパッケージをインストールします。

sudo yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet

これで、ツールと基本パッケージを含むKubernetesが正常にインストールされました。

クラスタをデプロイする前に、必ずホスト名を設定し、ファイアウォールとカーネル設定を構成してください。

ステップ3:ノードにホスト名を設定する

各ノードに一意のホスト名を付けるには、次のコマンドを使用します:

sudo hostnamectl set-hostname master-node

または

sudo hostnamectl set-hostname worker-node1

この例では、マスターノードの名前はmaster-nodeになり、ワーカーノードの名前はworker-node1になります。

ホストエントリまたはDNSレコードを作成して、すべてのノードのホスト名を解決します。

sudo vi /etc/hosts

エントリあり:

192.168.1.10 master.phoenixnap.com master-node
192.168.1.20 node1. phoenixnap.com node1 worker-node

ステップ4:ファイアウォールを構成する

ノード、コンテナー、およびポッドは、それらの機能を実行するためにクラスター全体で通信できる必要があります。フロントエンドでは、CentOSでFirewalldがデフォルトで有効になっています。リストされたコマンドを入力して、次のポートを追加します。

マスターノードで次のように入力します:

sudo firewall-cmd --permanent --add-port=6443/tcp
sudo firewall-cmd --permanent --add-port=2379-2380/tcp
sudo firewall-cmd --permanent --add-port=10250/tcp
sudo firewall-cmd --permanent --add-port=10251/tcp
sudo firewall-cmd --permanent --add-port=10252/tcp
sudo firewall-cmd --permanent --add-port=10255/tcp
sudo firewall-cmd --reload

ポートが追加されるたびに、システムは「成功」メッセージで確認します。

各ワーカーノードで次のコマンドを入力します。

sudo firewall-cmd --permanent --add-port=10251/tcp
sudo firewall-cmd --permanent --add-port=10255/tcp
firewall-cmd --reload

ステップ5:Iptables設定を更新する

net.bridge.bridge-nf-call-iptablesを設定します sysctl構成ファイルで「1」に変更します。これにより、フィルタリングおよびポート転送中にパケットがIPテーブルによって適切に処理されるようになります。

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

ステップ6:SELinuxを無効にする

コンテナはホストファイルシステムにアクセスする必要があります。 SELinuxは、セキュリティ機能を効果的に無効にするパーミッシブモードに設定する必要があります。

SELinuxを無効にするには、次のコマンドを使用します。

sudo setenforce 0
sudo sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/’ /etc/selinux/config

ステップ7:SWAPを無効にする

最後に、kubeletが正しく機能するようにするには、SWAPを無効にする必要があります。

sudo sed -i '/swap/d' /etc/fstab
sudo swapoff -a

Kubernetesクラスターをデプロイする方法

ステップ1:kubeadmを使用してクラスターを作成する

次のコマンドを実行して、クラスターを初期化します。

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

ネットワーク速度によっては、プロセスが完了するまでに数分かかる場合があります。このコマンドが終了すると、kubeadmjoinメッセージが表示されます。エントリをメモし、それを使用して、後の段階でワーカーノードをクラスターに参加させます。

ステップ2:クラスターを通常のユーザーとして管理する

クラスタの使用を開始するには、次のように入力して、通常のユーザーとしてクラスタを実行する必要があります。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

ステップ3:ポッドネットワークを設定する

ポッドネットワークを使用すると、クラスター内のノードが通信できます。利用可能なKubernetesネットワークオプションがいくつかあります。次のコマンドを使用して、フランネルをインストールします ポッドネットワークアドオン:

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

フランネルを使用する場合は、ファイアウォールルールを編集して、フランネルのデフォルトポート 8285のトラフィックを許可します。 。

ステップ4:クラスターのステータスを確認する

マスターサーバーで次のコマンドを入力して、ノードのステータスを確認します。

sudo kubectl get nodes

ポッドネットワークがインストールされたら、次のように入力してCoreDNSポッドが実行されていることを確認することで、ポッドネットワークが機能していることを確認できます。

sudo kubectl get pods --all-namespaces

ステップ5:ワーカーノードをクラスターに参加させる

ステップ1に示されているように 、 kubeadm joinを使用できます 各ワーカーノードでコマンドを実行して、クラスターに接続します。

kubeadm join --discovery-token cfgrty.1234567890jyrfgd --discovery-token-ca-cert-hash sha256:1234..cdef 1.2.3.4:6443

コードをマスターサーバーのコードに置き換えます。クラスタ上のワーカーノードごとにこのアクションを繰り返します。


Cent OS
  1. CentOS7にVagrantをインストールする方法

  2. CentOS8にGiteaをインストールする方法

  3. CentOS8にownCloudをインストールする方法

  1. CentOS8にMemcachedをインストールする方法

  2. CentOS7にNginxをインストールする方法

  3. CentOS7にApacheをインストールする方法

  1. CentOS7にTomcat8.5をインストールする方法

  2. CentOS7にJenkinsをインストールする方法

  3. CentOS7にTomcat9をインストールする方法