Kubesphere マルチノードのインストール、クラスターの展開

目次

序文

1. 環境整備

1. 仮想マシンの準備

2.vagrantfileを書く

3. 仮想マシンを起動して構成する

2.kubesphereのデプロイ

1. ノード割り当て(単一マスターノード)

 2. 必要なツールをインストールします (3 つの仮想マシンすべてで実行)

3. クラスターを作成する








序文

KubeSphereは、 Kubernetes上に構築された クラウドネイティブのアプリケーション指向分散オペレーティング システム です 。完全にオープン ソースで、マルチクラウドおよびマルチクラスター管理をサポートし、フルスタックの IT 自動化運用および保守機能を提供し、企業の DevOps ワークフローを簡素化します。そのアーキテクチャにより、サードパーティ アプリケーションとクラウドネイティブのエコロジー コンポーネント間のプラグ アンド プレイ統合が容易になります。

この記事のマルチサーバー環境は仮想マシンであり、インストールプロセスは公式ドキュメントに従って整理されています。







1. 環境整備

1. 仮想マシンの準備

  • virtualBoxとvagrantのダウンロードアドレスは別記事を参照してください。

まだ VMware Workstation を使用して Linux 仮想マシンを構築していますか? VirtualBox+vagrant で仮想マシンを簡単に扱う方法を教えます

  •   インストール後、仮想マシンの IP アドレス セグメントを設定します。これはすべて 56.x IP アドレスです。

  •  「管理」-「グローバル設定」を選択し、イメージを保存するための大きな容量を持つハードディスクを選択します。ここでは E ドライブの下のフォルダーを選択しました。

2.vagrantfileを書く

vagrantfile は仮想マシンの作成に使用されます。この設定ファイルを使用すると、手動で仮想マシンを作成する必要がなく、vagrant がこのファイルに基づいて自動的に仮想マシンを作成します。以下でこれを使用して、k8s-node1、k8s-node2、k8s-node3 という 3 つの仮想マシンを作成します。

Vagrant.configure("2") do |config|
	# 遍历
   (1..3).each do |i|
        config.vm.define "k8s-node#{i}" do |node|
            # 设置虚拟机的Box
            node.vm.box = "centos/7"

            # 设置虚拟机的主机名
            node.vm.hostname="k8s-node#{i}"

            # 设置虚拟机的IP  102 103 104
            node.vm.network "private_network", ip: "192.168.56.#{101+i}", netmask: "255.255.255.0"

            # 设置主机与虚拟机的共享目录
            # node.vm.synced_folder "~/Documents/vagrant/share", "/home/vagrant/share"

            # VirtaulBox相关配置
            node.vm.provider "virtualbox" do |v|
                # 设置虚拟机的名称
                v.name = "k8s-node#{i}"
                # 设置虚拟机的内存大小
                v.memory = 4096
                # 设置虚拟机的CPU个数
                v.cpus = 4
            end
        end
   end
end

注: このファイルはスペースを入れずに英語のディレクトリに配置する必要があります。

3. 仮想マシンを起動して構成する

  • vagrantfile があるフォルダーで cmd を実行し、「vagrant up」と入力して Enter キーを押すと、仮想マシンのデプロイが自動的に開始されます。

  •  仮想マシンがデプロイされるまで待ちます。

  •  仮想マシンを入力して root パスワード アクセスを有効にします。この操作は、後で Xshell などのクライアント ツールを介して接続する際の便宜のためです。

  先ほど CMD ウィンドウに vagrant ssh xxx xxx と入力して、次のようにホスト名を表します。


vagrant ssh k8s-node1 

  接続後に root ユーザーのパスワードに切り替えます: vagrant

su root 

sshd_config ファイルを変更する

vi /etc/ssh/sshd_config

修改
PasswordAuthentication yes

 sshdを再起動する

service sshd restart

 3 つの仮想マシンすべてが再審査請求操作を実行する必要がある

  •  ネットワークを構成する

すべての仮想マシンを停止し、3 つのノードを選択して、[管理] - [グローバル設定] - [ネットワーク] [NAT ネットワークの追加] を選択します。

 次に、各仮想マシンのネットワーク タイプを NAT ネットワークに変更します。そしてMACアドレスを再生成します。

 注: 4 番目のステップでは、更新ボタンをクリックして MAC アドレスを再生成する必要があります。

3 つの仮想マシンの IP アドレスを確認し、eth0 の IP アドレスを確認します。3 つの仮想マシン eth0 の IP アドレスは異なります。

//k8s-node1
[root@k8s-node1 vagrant]# ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:bd:06:c8 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 358sec preferred_lft 358sec
    inet6 fe80::a00:27ff:febd:6c8/64 scope link 

//k8s-node2
[root@k8s-node2 ~]# ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:66:07:0d brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.4/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 435sec preferred_lft 435sec
    inet6 fe80::a00:27ff:fe66:70d/64 scope link 
       valid_lft forever preferred_lft forever
//k8s-node3
[root@k8s-node3 ~]# ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:8e:d6:e6 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.5/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
       valid_lft 445sec preferred_lft 445sec
    inet6 fe80::a00:27ff:fe8e:d6e6/64 scope link 
       valid_lft forever preferred_lft forever


  •  Linux 環境をセットアップします (3 つの仮想マシンをすべて実行する必要があります)

ファイアウォールをオフにする

systemctl ファイアウォールを停止します。
systemctl ファイアウォールを無効にします。

 seLinuxを閉じる


sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
 

クローズスワップ

 swapoff -a #sed -ri 's/.*swap.*/#&/' /etc/fstabを一時的に閉じます#free -gを
永続的に閉じます#検証、swa​​pは0である必要があります

  • ホストレコードを追加
vi /etc/hosts
10.0.2.15 k8s-node1
10.0.2.4 k8s-node2
10.0.2.5 k8s-node3

注: IP アドレスは独自の eth0 アドレスである必要があります。 

 ブリッジされた IPV4 トラフィックを iptables チェーンに渡します。

cat > /etc/sysctl.d/k8s.conf <<EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

 アプリが有効になります

sysctl --system

 ヒント: 上記の操作を行った後、将来の問題や再構成を防ぐために、仮想マシン イメージをバックアップできます。






2.kubesphereのデプロイ






1. ノード割り当て(単一マスターノード)

ノードIP ホスト名 役割
10.0.2.15 k8s-node1 マスター、etcd

10.0.2.4

k8s-node2 ノード

10.0.2.5

k8s-node3 ノード

役割がマスターであるノードはマスターノードであり、特定のビジネスは展開されず、管理のみが行われます。

役割がノードであるノードは稼働ノードであり、特定のビジネスはこのノードにデプロイされます。

公式地図:

 2. 必要なツールをインストールします (3 つの仮想マシンすべてで実行)

  • 「curl」と入力してcurlがインストールされているかどうかを確認し、インストールされていない場合はcurlをインストールします 

上記の内容が返された場合は、curl がインストールされています。それ以外の場合は、次のように入力します。

yum install -y curl
  •  socatをインストールする
yum install -y socat
  •  conntrackをインストールする
yum install -y conntrack

 root ユーザーに切り替える

現地時間を確認し、タイムゾーンが UTC であることを確認します。

timedatectl

 

  •  タイムゾーンを上海に切り替える
timedatectl set-timezone Asia/Shanghai

 タイムゾーンをもう一度確認するとCSTになります

  •  時刻同期ツールのインストール
yum install -y chrony

 時刻同期リストの表示

chronyc -n sources -v

 現時点では変更せず、デフォルトの時刻同期リストを使用してください。

 現地時間の同期ステータスを表示する

chronyc tracking

 

 ローカル時間をチェックして、仮想マシンの時間が 3 日間一貫していることを確認します。

timedatectl status
  •  kubesphere インストール ツールをダウンロードします (マスター ノードによって実行されます)。
curl -sfL https://get-kk.kubesphere.io | VERSION=v1.1.1 sh -

 注: 上記のコマンドを実行すると、KubeKey の最新バージョン (v1.1.1) がダウンロードされます。コマンド内のバージョン番号を変更して、指定したバージョンをダウンロードできます。

注: ダウンロードが失敗した場合は、まずexport KKZONE=cnを実行してから、上記のコマンドを実行してください。

  • 実行可能権限を追加するには kk :
chmod +x kk

3. クラスターの作成(マスターノードで実行)

  •  設定ファイルを作成する
./kk create config [--with-kubernetes version] [--with-kubesphere version] [(-f | --file) path]

例:./kk create config --with-kubernetes v1.18.6 --with-kubesphere v3.1.1 

  • KubeSphere v3.1.1 をインストールするために推奨される Kubernetes バージョン: v1.17.9、v1.18.8、v1.19.8、および v1.20.4。Kubernetes バージョンを指定しない場合、KubeKey はデフォルトで Kubernetes v1.19.8 をインストールします。サポートされる Kubernetes バージョンの詳細については、サポート マトリックスを参照してください。

  • このステップでコマンドにフラグを追加しない場合 --with-kubesphere、KubeSphere はデプロイされず、構成ファイル内のフィールドを使用してのみインストールできます addons 。または、 ./kk create cluster 後でコマンドを使用するときにこのフラグを再度追加します。

  • KubeSphere のバージョンを指定せずにフラグを追加すると --with-kubesphere 、最新バージョンの KubeSphere がインストールされます。

 完了すると、構成テンプレートが生成されたことがわかります。

  •  自マシンの実際の状況に応じて、関連するノードの内容を設定します

  •  1 つのコマンドで kubesphere をインストールする
./kk create cluster -f config-sample.yaml

config-sample.yaml 注: 別の名前を使用する場合は、上記を独自のファイルに 変更する必要があります 。

 コンピュータとネットワーク環境によっては、インストール プロセス全体に 10 ~ 20 分かかる場合があります。

  • インストールを完了する
#####################################################
###              Welcome to KubeSphere!           ###
#####################################################

Console: http://192.168.0.2:30880
Account: admin
Password: P@88w0rd

NOTES:
  1. After you log into the console, please check the
     monitoring status of service components in
     the "Cluster Management". If any service is not
     ready, please wait patiently until all components
     are up and running.
  2. Please change the default password after login.

#####################################################
https://kubesphere.io             20xx-xx-xx xx:xx:xx
#####################################################
  •  すべてのコンポーネントが正常にインストールされているかどうか、およびすべてのステータスが実行中または完了であるかどうかを確認します。
kubectl get pod --all-namespaces

 

 これで、 <NodeIP:30880 デフォルトのアカウントとパスワード ( ) を使用して、 admin/P@88w0rdKubeSphere の Web コンソールにアクセスできるようになりました。

注: コンソールにアクセスするには、環境に応じてポート転送ルールの構成が必要な場合があります。また、セキュリティ グループでポートが開いていることも確認してください 30880

ログイン


おすすめ

転載: blog.csdn.net/qq_31277409/article/details/120392952