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

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

Kubernetesは、Googleが開発したコンテナ化されたアプリケーションを管理するためのオープンソースプラットフォームです。これにより、コンテナー化されたアプリケーションをクラスター化された環境で管理、スケーリング、および自動的にデプロイできます。 Kubernetesを使用すると、複数のホスト間でコンテナをオーケストレーションし、コンテナ化されたアプリケーションをすべてのリソースでオンザフライでスケーリングし、コンテナ管理環境を一元化できます。

このチュートリアルでは、CentOS 7にKubernetesをインストールして設定する方法を段階的に説明します。1台のサーバー「k8s-master」をKubernetesホストマスターとして使用し、2台のサーバーをKubernetesノード「node01」として使用します。および「node02」。

前提条件
  • 3台のCentOS7サーバー
    • 10.0.15.10 k8s-master
    • 10.0.15.21 node01
    • 10.0.15.22 node02
  • root権限

何をしますか?

  1. Kubernetesのインストール
  2. Kubernetesクラスターの初期化
  3. node01とnode02をクラスターに追加する
  4. テスト-最初のポッドを作成
ステップ1-Kubernetesのインストール

この最初のステップでは、Kubernetesをインストールするためにこれら3つのサーバーを準備するため、マスターサーバーとノードサーバーですべてのコマンドを実行します。

サーバーの既存の構成を変更し、docker-ceやkubernetes自体を含むいくつかのパッケージをインストールすることで、すべてのサーバーをKubernetesインストール用に準備します。

-ホストの構成

vimエディタを使用してすべてのサーバーのhostsファイルを編集します。

 vim / etc / hosts 

以下にホストのリストを貼り付けます。

 10.0.15.10 k8s-master 
10.0.15.21 node01
10.0.15.22 node02

保存して終了します。

-SELinuxを無効にする

このチュートリアルでは、DockerのSELinux構成については説明しないため、無効にします。

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

 setenforce 0 
sed -i --follow-symlinks's / SELINUX =enforcing / SELINUX =disable / g'/ etc / sysconfig / selinux

-br_netfilterカーネルモジュールを有効にする

br_netfilterモジュールは、kubernetesのインストールに必要です。このカーネルモジュールを有効にして、ブリッジを通過するパケットがフィルタリングとポート転送のためにiptablesによって処理され、クラスター全体のkubernetesポッドが相互に通信できるようにします。

以下のコマンドを実行して、br_netfilterカーネルモジュールを有効にします。

 modprobe br_netfilter 
echo '1'> / proc / sys / net / bridge / bridge-nf-call-iptables

-SWAPを無効にする

次のコマンドを実行して、kubernetesインストールのSWAPを無効にします。

 swapoff -a 

次に、「/ etc/fstab」ファイルを編集します。

 vim / etc / fstab 

スワップラインのUUIDを以下のようにコメントします。

-DockerCEをインストールします

Dockerリポジトリから最新バージョンのDocker-ceをインストールします。

docker-ceのパッケージ依存関係をインストールします。

 yum install -y yum-utils device-mapper-persistent-data lvm2 

dockerリポジトリをシステムに追加し、yumコマンドを使用してdocker-ceをインストールします。

 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
yum install -y docker-ce

docker-ceのインストールを待ちます。

-Kubernetesをインストールします

次のコマンドを実行して、kubernetesリポジトリをcentos7システムに追加します。

 cat < /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

次に、以下のyumコマンドを使用して、kubernetesパッケージkubeadm、kubelet、およびkubectlをインストールします。

 yum install -y kubelet kubeadm kubectl 

インストールが完了したら、それらのサーバーをすべて再起動します。

sudo再起動

サーバーに再度ログインして、サービス、Docker、およびkubeletを開始します。

 systemctl start docker &&systemctl enable docker 
systemctl start kubelet &&systemctl enable kubelet

-cgroup-driverを変更します

docker-ceとkubernetesが同じ「cgroup」を使用していることを確認する必要があります。

dockerinfoコマンドを使用してdockercgroupを確認します。

docker情報| grep -i cgroup 

そして、Dockerが' cgroupfsを使用していることがわかります 'cgroup-driverとして。

次に、以下のコマンドを実行して、kuberetescgroup-driverを「cgroupfs」に変更します。

 sed -i's / cgroup-driver =systemd / cgroup-driver =cgroupfs / g'/etc/systemd/system/kubelet.service.d/10-kubeadm.conf 

systemdシステムをリロードし、kubeletサービスを再起動します。

systemctlデーモン-リロード
systemctlrestart kubelet

これで、Kubernetesクラスターを構成する準備が整いました。

ステップ2-Kubernetesクラスターの初期化

このステップでは、kubernetesマスタークラスターの構成を初期化します。

シェルをマスターサーバー「k8s-master」に移動し、以下のコマンドを実行してkubernetesマスターをセットアップします。

 kubeadm init --apiserver-advertise-address =10.0.15.10 --pod-network-cidr =10.244.0.0 / 16 

注:

-apiserver-advertise-address =KubernetesがAPIサーバーをアドバタイズするIPアドレスを決定します。

-pod-network-cidr =ポッドネットワークのIPアドレスの範囲を指定します。 「フランネル」仮想ネットワークを使用しています。 weave-netやcalicoなどの別のポッドネットワークを使用する場合は、範囲のIPアドレスを変更してください。

Kubernetesの初期化が完了すると、次のような結果が得られます。

注:

' kubeadm join ... ... ...をコピーします 'テキストエディタへのコマンド。このコマンドは、新しいノードをkubernetesクラスターに登録するために使用されます。

ここで、Kubernetesを使用するには、結果のようにいくつかのコマンドを実行する必要があります。

新しい「.kube」構成ディレクトリを作成し、構成「admin.conf」をコピーします。

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

次に、kubectlコマンドを使用してフランネルネットワークをkubernetesクラスターにデプロイします。

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

フランネルネットワークがKubernetesクラスターにデプロイされました。

1分待ってから、以下のコマンドを使用してkubernetesノードとポッドを確認してください。

kubectlgetノード
kubectlget pods --all-namespaces

そして、「k8s-master」ノードが「ready」ステータスの「master」クラスターとして実行され、ネットワークポッドの「kube-flannel-ds」を含む、クラスターに必要なすべてのポッドを取得します。構成。

すべてのkubeシステムポッドのステータスが「実行中」であることを確認してください。

Kubernetesクラスタマスターの初期化と設定が完了しました。

ステップ3-ノード01とノード02をクラスターに追加する

このステップでは、node01とnode02を追加して「k8s」クラスターに参加させます。

node01サーバーに接続し、上部にコピーしたようにkubeadmjoinコマンドを実行します。

 kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c61e   

node02サーバーに接続し、上部にコピーしたようにkubeadmjoinコマンドを実行します。

 kubeadm join 10.0.15.10:6443 --token vzau5v.vjiqyxq26lzsf28e --discovery-token-ca-cert-hash sha256:e6d046ba34ee03e7d55e1f5ac6d2de09fd6d7e6959d16782ef0778794b94c61e   

数分待ってから「k8s-master」マスタークラスタサーバーに戻り、次のコマンドを使用してノードとポッドを確認します。

kubectlgetノード
kubectlget pods --all-namespaces

これで、node01が取得され、node02がステータス「ready」でクラスターに追加されました。

node01とnode02がkubernetesクラスターに追加されました。

ステップ4-最初のポッドを作成するテスト

このステップでは、Nginxポッドをkubernetesクラスターにデプロイしてテストを行います。ポッドは、Kubernetesで実行される共有ストレージとネットワークを備えた1つ以上のコンテナのグループです。ポッドには、Dockerコンテナなどの1つ以上のコンテナが含まれています。

「k8s-master」サーバーにログインし、kubectlコマンドを使用して「nginx」という名前の新しいデプロイを作成します。

 kubectl create deploy nginx --image =nginx 

'nginx'デプロイメントの選択の詳細を表示するには、次のコマンドを実行します。

kubectlはデプロイメントnginxについて説明します

そして、nginxポッドのデプロイ仕様を取得します。

次に、インターネット経由でアクセスできるnginxポッドを公開します。そして、このために新しいサービスNodePortを作成する必要があります。

以下のkubectlコマンドを実行します。

 kubectl create service nodeport nginx --tcp =80:80 

エラーがないことを確認してください。次に、以下のkubectlコマンドを使用してnginxサービスノードポートとIPを確認します。

 kubectl get pods 
kubectl get svc

これで、nginxポッドがクラスターIPアドレス「10.160.60.38」ポート80で実行され、ノードのメインIPアドレス「10.0.15.x」がポート「30691」で実行されるようになります。

「k8s-master」サーバーから、以下のcurlコマンドを実行します。

 curl node01:30691 

 curl node02:30691 

NginxポッドはKubernetesクラスターの下にデプロイされ、インターネット経由でアクセスできます。

Webブラウザからアクセスします。

http://10.0.15.10:30691/

そして、Nginxのデフォルトページが表示されます。

node02サーバー上-http://10.0.15.11:30691 /

CentOS7でのKubernetesクラスターのインストールと構成が正常に完了しました。


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

  2. CentOS 7 /RHEL7にDockerをインストールする方法

  3. CentOSにDockerをインストールする方法

  1. Ubuntu18.04にKubernetesをインストールする方法

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

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

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

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

  3. DockerCEをRHEL8/CentOS8にインストールする方法