GNU/Linux >> Linux の 問題 >  >> AlmaLinux

RHEL、CentOS、AlmaLinux、RockyLinuxでKubeadmを使用してKubernetesクラスターをインストールする

この記事では、RHEL 8でKubeadmを使用したKubernetesクラスターのインストールと、AlmaLinux 8、CentOS 8、RockyLinux8などのクローンについて学習します。

始める前に、Kubernetesの概念とアーキテクチャに関する基本的な理解が必要です。 。この記事では、2ノードクラスターについて説明します。

インストールを続行するには、以下の基本要件が必要です。

  • 最低2つのホスト。
  • 2つのCPU。
  • 2GBの物理メモリ(RAM)。
  • 20GBのディスク容量。
  • パッケージをダウンロードするためのインターネット接続。

1。ホスト名とIPアドレスを構成する

マスターとワーカーでホスト名を設定し、ホストを構成します。オペレーティングシステムのファイルhostsは、ホスト名またはドメイン名をIPアドレスに変換するために使用されます。

ここでは、2つのホストがあります:

  • ostechmaster-マスター
  • ostechworker –ワーカー

以下のコマンドを使用してホスト名を設定します。ホスト名を設定した後、再起動する必要があります。

#hostnamectl set-hostname ostechmaster 

/etc/hostsを編集します ファイル:

#vi / etc / hosts 

/etc/hostsにサーバーとクライアントの両方のホスト名とIPアドレスを追加します ファイル:

接続を確認するためにpingテストを実行します:

 [[email protected]〜]#ping ostechworkerPING ostechworker(172.31.5.141)56(84)bytes of data.64 bytes from ostechworker(172.31.5.141):icmp_seq =1 ttl =64 time =0.472 ms64 bytes from ostechworker (172.31.5.141):icmp_seq =2 ttl =64 time =0.492 ms64 bytes from ostechworker(172.31.5.141):icmp_seq =3 ttl =64 time =1.43 ms64 bytes from ostechworker(172.31.5.141):icmp_seq =4 ttl =64時間=0.425ミリ秒

2。 SElinuxを無効にする

マスターとワーカーでSElinuxを無効にして、SElinuxが無効になっている場合、すべてのコンテナーがホストファイルシステムに簡単にアクセスできるようにします。
'SELINUX=disabledを作成します '設定ファイル/etc/selinux/configにあります viエディターを使用します。 SElinuxの変更を反映するには、再起動が必要です。

 [[メール保護]〜]#vi / etc / selinux / config 

以下のコマンドを使用して、SElinuxのステータスを確認します。

 [[email protected]〜]#sestatusSELinux status:disabled 

3。マスターとワーカーのスワップを無効にする

すべてのKubernetesホスト(マスターとワーカー)でスワップを無効にする必要があります。これは、Kubernetesコミュニティで推奨されるデプロイ方法です。スワップが無効になっていない場合、マスターとワーカーでkubeletサービスは開始されません。

以下のコマンドを実行して、SWAPを無効にします。

 [[email protected]〜]#swapoff -a &&sed -i'/ swap / d'/ etc / fstab 

4。ファイアウォールで必要なポートを許可する

Kubernetesコンポーネントが相互に対話するには、特定の重要なポートが使用可能である必要があります。以下は、Kubernetesコンポーネント間の接続を利用するために開くポートです。

コントロールプレーン/マスターサーバー:

プロトコル 方向 ポート範囲 目的 使用者
TCP インバウンド 6443 KubernetesAPIサーバー すべて
TCP インバウンド 2379-2380 etcdサーバークライアントAPI kube-apiserverなど
TCP インバウンド 10250 Kubelet API セルフ、コントロールプレーン
TCP インバウンド 10259 kube-scheduler 自己
TCP インバウンド 10257 kube-controller-manager 自己

ワーカーノード:

プロトコル 方向 ポート範囲 目的 使用者
TCP インバウンド 10250 Kubelet API セルフ、コントロールプレーン
TCP インバウンド 30000-32767 NodePortサービス すべて

必要なポートがファイアウォールを通過できるようにするには、次のコマンドを実行します。

マスターノード:

 [[email protected]〜]#firewall-cmd --permanent --add-port =6443 / tcp 
 [[email protected]〜]#firewall-cmd --permanent --add-port =2379-2380 / tcp 
 [[email protected]〜]#firewall-cmd --permanent --add-port =10250 / tcp 
 [[email protected]〜]#firewall-cmd --permanent --add-port =10251 / tcp 
 [[email protected]〜]#firewall-cmd --permanent --add-port =10259 / tcp 
 [[email protected]〜]#firewall-cmd --permanent --add-port =10257 / tcp 
 [[email protected]〜]#firewall-cmd --reload 

ワーカーノード:

 [[email protected]〜]#firewall-cmd --permanent --add-port =10250 / tcp 
 [[email protected]〜]#firewall-cmd --permanent --add-port =30000-32767 / tcp 
 [[email protected]〜]#firewall-cmd --reload 

デモンストレーションの目的で、マスターとワーカーの両方でファイアウォールを無効にしています。ただし、リアルタイムの制作練習にはお勧めしません。

以下のコマンドを使用して、ファイアウォールを停止および無効にします。

 [[email protected]〜]#systemctl stop Firewalld 
 [[email protected]〜]#systemctl disable Firewalld 

5。 Dockerをインストールする

Dockerを使用すると、コンテナーを「構築」しやすくなりますが、Kubernetesを使用すると、コンテナーをリアルタイムで「管理」できます。ソフトウェアをパッケージ化して出荷するには、Dockerを使用します。アプリを起動してスケーリングするには、Kubernetesを使用します。

Cluster内のすべてのマシンにDockerリポジトリを追加します。

docker.repoという名前のファイルを作成します /etc/yum.repos.d/の下 ディレクトリ:

 [[メール保護]〜]#vi /etc/yum.repos.d/docker.repo 

その中に次の行を追加します:

 [docker] baseurl =https://download.docker.com/linux/centos/8/x86_64/stable/gpgcheck=0 

Escキーを押して、:wqと入力します ファイルを保存して閉じます。

マスターノードとワーカーノードの両方にDockerをインストールします:

#yum -y install docker-ce 

インストールしたら、両方のノードでDockerを有効にして起動します。

#systemctl enable docker 
#systemctl start docker 

Dockerが両方のマシンで実行されていることを確認してください。

#systemctl status docker 

6。 Kubernetesをインストールする

マスターとワーカーにKubernetesリポジトリを追加します。

ファイルkubernetes.repoを作成します /etc/yum.repos.d/の下のマスターとワーカーの両方で ディレクトリ:

#vi /etc/yum.repos.d/kubernetes.repo 

次の行を追加します:

 [kubernetes] name =Kubernetesbaseurl =https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://packages.cloud.google.com/ yum / doc / yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 

ESCを押して、:wqと入力します ファイルを保存して閉じます。

次のコマンドを使用して、マスターノードとワーカーノードにkubeadm、kubelet、kubectlをインストールします。

#yum install -y kubelet kubeadm kubectl --disableexcludes =Kubernetes 

kubeletを有効にして開始します 両方のマシンでのサービス:

#systemctl enable kubelet 
#systemctl start kubelet 

Kubeletサービスのステータスをチェックし、両方のマシンで正常に実行されていることを確認します。

#systemctl status kubelet 

7。 Kubernetesを初期化します

以下のコマンドを使用して、マスターサーバーでKubernetesを初期化します

 [[メール保護]〜]#kubeadm init 

以下の出力は、Kubernetesコントロールプレーンが正常に初期化されたことを示しています。そして、クラスターの使用を開始するための特定の手順について説明します。それに従ってください。

また、'kubeadm join'をコピーして保存します 出力からのコマンドは、クラスター内のワーカーノードに参加するために使用されます。

出力例:

  Kubernetesコントロールプレーンが正常に初期化されました! クラスタの使用を開始するには、通常のユーザーとして次を実行する必要があります。mkdir -p $ HOME / .kube sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config sudo chown $(id- u):$(id -g)$ HOME / .kube / configまたは、rootユーザーの場合は、次のコマンドを実行できます: export KUBECONFIG =/ etc / kubernetes / admin.conf  ここで、ポッドネットワークをクラスターにデプロイする必要があります。https://kubernetes.io/docs/concepts/cluster-administration/addons/Thenにリストされているオプションのいずれかを使用して「kubectlapply -f[podnetwork].yaml」を実行します。ルートとしてそれぞれで以下を実行することで、任意の数のワーカーノードに参加できます。強い> 

rootを進めているので ユーザーは、上記の出力に記載されているように、マスターサーバーで以下のコマンドを実行します。

 [[email protected]〜]#export KUBECONFIG =/etc/kubernetes/admin.conf 

8。 PODネットワークの構成

Kubernetes Podネットワークは、Kubernetesで相互接続されたコンポーネントのネットワークです。このネットワークの概念は、いくつかの異なる方法で実装できます。デモンストレーションでは、「WeaveNet」を使用します 。

マスターサーバーで以下のコマンドを実行して、PODネットワークをセットアップします。

 [[email protected]〜]#export kubever =$(kubectl version | base64 | tr -d'\ n')
 [[email protected]〜]#kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$kubever 

出力例:

 serviceaccount / weave-netcreatedclusterrole.rbac.authorization.k8s.io/weave-netcreatedclusterrolebinding.rbac.authorization.k8s.io/weave-netcreatedrole.rbac.authorization.k8s.io/weave-netcreatedrolebinding.rbac .authorization.k8s.io / weave-net createddaemonset.apps / weave-net created [[email protected]〜]#

9。ワーカーノードに参加する

'kubeadm joinを実行します 'ワーカーノードをクラスターに参加させるコマンド。これは、'kubeadm initからコピーしたコマンドです。 '出力。

 [[email protected]〜]#kubeadm join 172.31.10.29:6443 --token 220tvj.051bkeyj5tg6v55r --discovery-token-ca-cert-hash sha256:434c49c7969256a7fae3880b340202cadd4fd29d3d381ab37e1cb8b1  

以下のコマンドを使用して、マスターサーバーのノードを確認できます

#kubectlgetノード

出力例:

名前ステータスロール年齢バージョンostechmasterReadyコントロールプレーン、master 32m v1.23.1ostechworker Ready  30m v1.23.1 

結論

この記事では、Kubeadmを使用してKubernetesクラスターをセットアップおよび構成するための詳細な手順について説明しました。以前のkubernetesシリーズを参照してください Kubernetesのアーキテクチャと概念について詳細に理解するための記事。今後の記事でKubernetesの操作を確認します。

次を読む:

  • LinuxでKubernetesポッドを作成および管理する方法

リソース:

  • https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/

AlmaLinux
  1. AlmaLinuxとRockyLinux

  2. CentOS 8 / Rocky Linux 8 /RHEL8にPostgreSQLをインストールする方法

  3. Rocky Linux 8 / CentOS 8 /RHEL8にJavaをインストールする方法

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

  2. MediaWikiをRHEL8/ Rocky Linux 8 / AlmaLinuxOS8にインストールする方法

  3. Rocky Linux / Alma Linux /CentOS8にErlangをインストールする方法

  1. Rocky Linux 8 / CentOS 8 /RHEL8にGNOMEGUIをインストールする方法

  2. Rocky Linux 8 / CentOS 8 /RHEL8にVirtualBoxをインストールする方法

  3. Rocky Linux 8 / CentOS 8 / RHEL 8/AlmaLinuxにDockerをインストールする方法