DUICUO

KubeSphere の使用方法は、ユーザーがクラウドネイティブ アプリケーションを簡単に構築、展開、管理するのに役立ちます。

コンテナ化されたデプロイメント、特にDockerテクノロジーを用いたデプロイメントは、現代のソフトウェアデプロイメントの標準となっています。`run`などのシンプルなコマンドでコンテナを直接起動したり、docker-composeやKubernetes (k8s)などのオーケストレーションツールを使用してプロセスを簡素化したりできます。

Kubernetesは、Googleが設計・開発し、現在はCloud Native Computing Foundation(CNCF)がメンテナンスを行っているオープンソースのコンテナオーケストレーションプラットフォームです。コンテナ化されたアプリケーションの導入、スケーリング、管理、自動化を簡素化し、ユーザーがアプリケーションをより効率的に構築、配信、実行できるようにすることを目指しています。Kubernetesは強力なツールですが、その複雑さゆえに一部のユーザーにとって扱いにくい場合があります。

続いて、今回の記事の主題である「KubeSphere」を紹介しましょう。

KubeSphereの紹介

KubeSphereはKubernetesの拡張機能と強化機能として捉えることができ、Kubernetesの利用を簡素化・最適化するための機能とソリューションを提供します。KubeSphereは、DevOps、マルチテナント管理、サービスメッシュ、ストレージ、ログ監視など、豊富なツールとサービスを提供しており、ユーザーがクラウドネイティブアプリケーションを簡単に構築、デプロイ、管理できるよう支援します。

KubeSphereは、Kubernetes上に構築された、より包括的なクラウドネイティブ・フルスタック・ソリューションです。Kubernetesの機能をさらに簡素化・強化し、より幅広いサポートとサービスを提供します。

以下は KubeSphere 公式 Web サイトからの定義です。

KubeSphereのビジョンは、Kubernetesを中核とするクラウドネイティブな分散オペレーティングシステムを構築することです。そのアーキテクチャは、サードパーティ製アプリケーションとクラウドネイティブエコシステムコンポーネントのプラグアンドプレイ統合をサポートし、マルチクラウドおよびマルチクラスタ環境におけるクラウドネイティブアプリケーションの統合的な配布、運用・保守管理を実現します。

KubeSphere の詳細については、公式 Web サイト (KubeSphere 公式 Web サイト) をご覧ください。

インストールの準備

KubeSphere を初めて使用し、コンテナ プラットフォームをすぐに使い始めたいユーザーにとっては、オールインワン インストール モードが最適です。このモードでは、構成なしで KubeSphere と Kubernetes を迅速に展開できます。

環境整備

  • CentOS: 7.4.1708/7.9、8 GB RAM、4 コア CPU
  • ドッカー: 23.0.5
  • Kubernetes: 1.22.12
  • キューブスフィア: 3.4.0

ノード要件

1. ノードは SSH 経由で接続できる必要があります。2. ノード上で `sudo /cur1 /openss1` コマンドを使用できます。

Dockerをインストールする

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum-config-manager --enable docker-ce-edge sudo yum -y install docker-ce systemctl start docker chkconfig docker on

Docker をインストールした後、次のコマンドを実行して設定する必要があります。

 tee /etc/docker/daemon.json <<-'EOF' { "exec-opts": ["native.cgroupdriver=systemd"] } EOF

次に、systemctl restart docker を実行して Docker を再起動し、設定を有効にします。

依存関係をインストールする

Kubekeyは、Go言語で開発された全く新しいインストールツールで、従来のAnsibleベースのインストーラーに代わるものです。KubeKeyは柔軟なインストールオプションを提供し、KubeSphereとKubernetesを個別に、または両方を同時にインストールできるため、便利で効率的です。

KubeKeyはKubernetesとKubeSphereを一緒にインストールできます。必要な依存関係はKubernetesのバージョンによって異なる場合があります。

関連する依存関係をインストールするには、次のコマンドを実行します。

 yum -y install socat conntrack ebtables ipset

ネットワークとDNSの要件

`/etc/resolv.conf` 内の DNS アドレスが有効であることを確認してください。有効でない場合、クラスター内で DNS の問題が発生する可能性があります。`cat /etc/resolv.conf` コマンドを使用して確認してください。

また、`nslookup www.baidu.com` コマンドを使用してテストすることもできます。次の画像が表示されれば、すべてが正常であることを意味します。

ファイアウォールをオフにします。

まず、`firewall-cmd --state` コマンドを使用してファイアウォールの状態を確認します。ファイアウォールが動作している場合は、次のコマンドで無効にします。

 systemctl stop firewalld systemctl disable firewalld

SELinux が無効になっているかどうかを確認するには、コマンド `sestatus` を入力します。

上の画像は有効化された状態を示しています。設定ファイルを編集します: `vi /etc/selinux/config`

変更を行った後、変更を有効にするためにサーバーを再起動します。

kubekeyをダウンロード

Kubernetesとkubesphereのインストールにはkubekeyツールを使用するため、まずkubekeyをインストールしてください。GitHubとGoogleにアクセスできるかどうかに関わらず、以下のコマンドを実行してリージョンを切り替えると、多くの手間を省くことができます。

 export KKZONE=cn

GitHub リリース ページから KubeKey をダウンロードするか、次のコマンドを直接使用します。

 curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.13 sh -

実行が成功すると、下の画像に示すように、現在のディレクトリに緑色の「kk」ディレクトリが表示されます。

kk ディレクトリに十分な権限がない場合は、次のコマンドを使用して権限を付与する必要があります。

 chmod +x kk

インストール

ルート ディレクトリに `./kk` と入力すると、さまざまなインストール方法でよく使用されるコマンドと手順が表示されます。

次のコマンドは、Kubernetesとkubesphereの両方を同時にインストールします。インストール前に環境チェックが実行されます。

 ./kk create cluster --with-kubernetes v1.22.12 --with-kubesphere v3.4.0

インストール中:

kubesphere の最終的なインストールには長い時間がかかります。

問題は、成功メッセージが表示されずに長時間待たされたことです。確認したところ、CentOS システムバージョンの依存関係と KubeKey の競合が原因である可能性があることがわかりました。私は CentOS Linux リリース 7.4.1708 (Core) を使用していましたが、**CentOS 7.9 の使用が推奨されています**。

新しい仮想マシンを作成し、Parallelsを使用してMacにCentOS 7.9をインストールしました。インストール中に、以下の問題が発生しました。

  • 赤い画面
  • 「ネットワークがないため、VNC を要求しません」というエラー メッセージが表示されます。

これは、次のように設定することで解決できます。

CentOS 7.9をインストールした後、上記の手順に従って再インストールしました。今回はインストールが成功し、インストール成功メッセージにkubesphereのアクセスアドレス、ユーザー名、パスワードが表示されました。

ログイン後、画面は次のようになります。

仮想マシンの構成は、少なくとも4コアと8GBのRAMが必要です。当初は2コア(デフォルト)しか割り当てていなかったため、監視システムの一部のノードが実行後に正常に起動しませんでした。4コアに調整した後、すべて正常に起動しました。

KubeSphereは

一般的なコマンド

# 查看哪些pod 启动了,使用-A 参数表示获取所有命名空间下的Pod kubectl get pod -A # 详细描述指定命名空间中特定Pod 的信息kubectl describe pod pod名称-n 命名空间# 获取指定命名空间(这里是kube-system 命名空间)中的所有Pod 列表kubectl get pods -n kube-system # 获取Kubernetes 集群中所有节点(Node)的列表kubectl get nodes

ワークロードを作成する

ステートフル レプリカ セットをワークロードに追加し、基本情報を入力します。

コンテナを構成するには、まずコンテナを選択し(「mysql」を直接入力して検索できます)、次にインストールする必要があるデータベースのバージョンを選択します。

タイムゾーンやルートパスワードなどの環境変数を設定します。

ストレージのマウントを構成します。

マウント構成ファイル:

使用する前にサービスを作成する必要があります。ステートフルレプリカセットを作成すると、デフォルトでサービスが作成されます。

デフォルトでは、アクセスはクラスター内に限られます。コンテナのコンソールでDNS名を使用してログインできます。

外部アクセスが必要な場合は、サービスを作成し、指定されたワークロードを選択する必要があります。

次の図に示すように、ステートフル レプリカ セットを見つけて指定します。

サービス名とポートを設定します。

アクセス モードを設定します:

外部アクセスの場合、サービスの作成後に外部アクセス ポートが生成されることに注意してください。

クライアント ツールを使用して接続します。