kubeadmは、迅速な展開kubernetesクラスタのためのツールの公式コミュニティの立ち上げです。
このツールは、kubernetesクラスタを完了するために、2つの命令を展開することができます:
#マスターノード作成 のinit $のkubeadm #ノードは、現在のクラスタノードに参加する の$ kubeadm 参加 <マスターノードのIPとポートを>
1.インストール要件
:開始する前に、機械はKubernetesクラスタは、以下の条件満足展開する必要がある
1台以上のマシン、オペレーティングシステムCentOS7.x-86_x64の
ハードウェア構成:2GB以上のRAM、2またはそれ以上のCPU-CPUを、 30ギガバイト以上のハードディスク
、ネットワーク内のすべてのマシン間のクラスタ相互通信は、
インターネットにアクセスすることができ、ミラー引くために必要な
禁止スワップ領域を
2.学習目標
すべてにインストールされているが、ドッカーとkubeadmノード
展開Kubernetesマスターは
プラグインコンテナネットワークの展開
展開Kubernetesノードを、ノードがクラスタKubernetesが参加し
、ダッシュボードのWebページを、視覚的なビューKubernetesリソース配備します
3.環境を準備します
ファイアウォールをオフにします: $ systemctlのSTOP firewalldの $のsystemctlはfirewalld無効 SELinuxのオフ: $ sedの -i ' S /施行/無効/ 'は/ etc / SELinuxの/ 設定 $ setenforce 0 スワップを閉じます: $するswapoff - 一時的な$ $のVimは/ etc / fstabに$永久 :ホスト名とIPの対応関係(ホスト名を設定することを忘れないでください)を追加 $ CATの/ etc / ホスト 192.168。31.61 k8s- マスター 192.168。31.62 k8s- ノード1 192.168。31.63 k8s- ノード2を 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
4.すべてのノードは、ドッカー/ kubeadm / kubeletインストール
KubernetesデフォルトCRI(ランタイムコンテナ)ドッカーであるが、そうドッカーをインストールします。
4.1インストールドッカー
$ wgetの HTTPS:// mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo $ yumを -y インストールドッカ-CE-を18.06。1 .ce- 3 .el7 $ systemctlドッキングウィンドウを有効 && ドッキングウィンドウの開始systemctl $ドッキングウィンドウ - バージョン ドッカーバージョン18.06を。1 -ce、e68fc7aを構築
4.2アリクラウドYUMリポジトリを追加します。
$ 猫 >の/ etc / yumを .repos.d / kubernetes.repo << EOF [kubernetes] 名 = Kubernetes BASEURL = HTTPS:// mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 有効= 1 gpgcheck = 0 repo_gpgcheck = 0 gpgkey = HTTPS:// mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key .gpg EOF
4.3インストールkubeadm、kubeletとkubectl
頻繁にバージョンアップのために、ここで指定した展開のバージョン番号:
$ ヤム インストール kubelet- -y 1.15。0 kubeadm- 1.15。0 kubectl- 1.15。0 $ systemctlオムレツを有効にします
展開Kubernetesマスターは
192.168.31.63(マスター)を行いました。
INIT kubeadm $ \ apiserverアドレス-宣伝= 192.168。3161 \ 画像リポジトリregistryaliyuncscom googlecontainers \ kubernetes-V1バージョン。15.0 \ サービスCIDR = 10.1。0.0 / 16 \ ポッド・ネットワークCIDR = 10244。0.0 / 16
、アクセスできない国を引っ張っアリ雲がここにミラーリング倉庫のアドレスを指定しk8s.gcr.ioデフォルトの画像アドレス以来。
kubectlツールを使用します。
ます。mkdir -p $ HOME / .kube はsudo のcp -i /etc/kubernetes/admin.conf $ HOME / .kube / 設定 はsudo をchown $(のid -u):$(IDの -g)の$ HOME / .kube / 設定 $ノードを取得kubectl
6.ネットワークポッドプラグ(CNI)をインストール
$のkubectl適用-fます。https:// raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
このregisteryをquay.ioへのアクセスを確保。
lizhenliang /フランネル:v0.11.0-amd64のダウンロードが失敗した場合は、このイメージアドレスを変更することができます
7. Kubernetesノードの追加
)192.168.31.65/66(Nodeを実行します。
kubeadm initコマンドの出力に参加kubeadm行い、クラスタに新しいノードを追加します。
$ kubeadmは参加 192.168。31.61:6443 - トークンesce21.q6hetwm8si29qxwn \ --discoveryトークン-CA-CERT-ハッシュSHA256:00603a05805807501d7181c3d60b478788408cfe6cedefedb1f97569708be9c5
8.テストkubernetesクラスタ
Kubernetesクラスタ内のポッドを作成し、適切な動作を確認します。
$は展開nginxの--image =作成kubectl nginxの $ kubectl展開nginxの公開 --port = 80 --type = NodePort $ kubectl GETポッド、SVCを
アクセスアドレス:のhttp:// NodeIP:ポート
9.デプロイダッシュボード
$のkubectl適用-fます。https:// raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
lizhenliang / kubernetes-ダッシュボード-AMD64:国内のデフォルト画像がアドレスミラーリング、改変、アクセスできない v1.10.1の:
外部に露出し、NodePortタイプとしてサービスを変更し、デフォルトダッシュボードのみクラスタ内でアクセスすることができます。
種類:サービス apiVersion:V1の メタデータ: ラベル: K8S -app:kubernetes- ダッシュボード 名:kubernetes - ダッシュボードの 名前空間:KUBE - システムの 仕様: タイプ:NodePortの ポート: -ポート:443 targetPort:8443 nodePort:30001 セレクター: K8S -app: kubernetes、ダッシュボード
$のkubectlは-f kubernetes-dashboard.yamlを適用します
アクセスアドレス:のhttp:// NodeIP:30001は
、クラスタ内のサービスアカウントとバインドデフォルトのクラスタ管理者管理者の役割を作成します。
$ kubectl作成serviceaccountダッシュボード管理者-n kube- システム $ kubectl clusterrolebindingダッシュボード作成 -admin --clusterrole =クラスタ管理者--serviceaccount = KUBE-システム:dashboard- 管理者 $ kubectl秘密は説明 - KUBE-システム-n $(kubectlをN KUBE-システムは秘密の取得| awkは ' /ダッシュボード管理者/ {$ 1}印刷')
トークンのログインダッシュボードの出力を使用します。