Kubernetes学習のチュートリアル


目次

  • Introduction
  • What is Kubernetes
  • Kubernetes High Level Architecture
  • Control Plane
  • Node
  • Kubernetes Tools
  • What is Minikube
  • Minikube Installation
  • Install Curl
  • Install docker
  • Install Minikube
  • Minikube Run
  • Output of minikube start and status
  • Install Kubectl
  • Verify and Run Minikube Cluster
  • Conclusion
  • Bibliography
  • 導入

  • この記事は、Kubernetes基本から始める目的を意図しました
  • また、基本的なKubernetesコマンドを実行するためにLabs環境の設定について説明します.
  • このブログをKubernetesから始める間に使用される落書きパッドとして考慮することができます
  • クベルネッツとは

  • Kubernetes またK8s ) コンテナオーケストレーションオープンソースプラットフォームです.
  • Kubernetesは、コミュニティで生産された生産作業負荷の経験を15年にわたって構築します.
  • 我々は、宣言の構成と自動化を容易にするコンテナ化されたワークロードとサービスを管理することができます.
  • それは、大きく、急速に成長する生態系を持っています.Kubernetesサービス、サポート、およびツールが広く利用可能です.
  • Refer Documentation for more details
  • Kubernetes高レベルアーキテクチャ


    つの主要なビルディングブロックへのKubernetes.
    一九九九年Control Plane (or Master Node 前述の通り
    2 .Nodes (or Worker Node 前述の通り

    コントロールプレーン


    マスターノードには4つの主要なコンポーネントがあります.
    Kube APIサーバ:このコンポーネントはKubernetes APIを公開し、K 8 Sコントロールプレーンのフロントエンドとして機能します.kubectl はAPIサーバと対話するために使用されます.
    2 . ETCD:安全なキー値ストア
    Kubeスケジューラ:時計を新しく作成し、それらのポッドのノードを選択して実行する
    コントローラマネージャー:このコンポーネントは、Kubernetesの4つのコントローラプロセスを管理します
  • ノードコントローラ
  • ジョブコントローラ
  • エンドポイントコントローラ
  • サービスアカウントとトークンコントローラ

  • ノード


    ノードは
    Kubelet :クラスタ内の各ノードで動作するエージェント.コンテナがpodで動いていることを確認します.
    2 Kube proxy : Kube Proxyはクラスタ内の各ノードで動作するネットワークプロキシで、Kubernetesサービスのコンセプトの一部を実装しています.
    3 .コンテナランタイム:コンテナランタイムは、コンテナの実行に責任があるソフトウェアです.
    Kubernetesはいくつかのコンテナランタイムをサポートしています.
    ポッド:ポッドは、我々が作成することができて、Kubernetesで管理することができるコンピューティングの最も小さな配備可能な単位です.
    ポッド(クモまたはエンドウポッドのポッドのように)は、共有ストレージとネットワークリソースを持つ1つ以上のコンテナのグループ、およびコンテナを実行する方法の仕様です.
    Refer Kubernetes Component Documentation 詳細は

    Kubernetesツール


    ワークステーションでセットアップを行うことによってKubernetesを学ぶために利用できる様々なツールがあります
  • 小喰部
  • 種類
  • クベットル
  • クベーダム
  • 学習の一環として、Kubernetesを練習するために、我々はピックアップされますminikube インストール手順と実践レッスン.
    Refer documentation for more details

    minikubeとは

  • minikube は、任意のワークステーションでローカルにKubernetesを実行させることができますCLIツールです.
  • それは我々のパーソナルコンピュータ(Windows、MacOS、Linux OSを含む)上の単一ノードKubernetesクラスタを実行するので、我々はKubernetes学習を試してみることができますし、任意の毎日の開発作業.
  • Minikubeクラスタは、コンテナの管理を開始するために、マスターとワーカーズコンポーネントの両方をパックします.
  • 図の下にMinikubeシングルノードクラスタを表します.

  • minikubeインストール


  • 始めるためにminikube , ワークステーションにコンポーネントをインストールする必要があります
  • インストールcurl コマンド
  • インストールdocker
  • インストールminikube
  • インストールkubectl (オプション)
  • 私はステップを実行しましたUbuntu 21.04 ベースのオペレーティングシステム
  • 参照minikube documentation 他のオペレーティングシステムのインストール手順
  • インストールカール


    sudo apt update
    sudo apt install curl -y
    

    インストール


    # Update the apt package index, and install the latest version of Docker Engine and containerd, 
    # or go to the next step to install a specific version:
    sudo apt update -y
    sudo apt install -y docker-ce docker-ce-cli containerd.io
    
    # Add current user to 'docker' user group to invoke minikube (otherwise, the .sock permission denied error will occur)
    sudo usermod -aG docker $USER
    newgrp docker
    
    # Verify that Docker Engine is installed correctly by running the hello-world image.
    sudo docker run hello-world
    

    インストール


    cd /tmp
    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
    sudo dpkg -i minikube_latest_amd64.deb
    

    minikubeラン

  • スタートminikube コンテナとランタイムエンジンとしてDockerを提供する
  • $ minikube start --driver=docker
    

    minikube開始と地位の出力

  • これはコンソールで以下の出力を表示します
  • 😄  minikube v1.22.0 on Ubuntu 21.04
    ✨  Using the docker driver based on user configuration
    👍  Starting control plane node minikube in cluster minikube
    🚜  Pulling base image ...
    💾  Downloading Kubernetes v1.21.2 preload ...
        > preloaded-images-k8s-v11-v1...: 502.14 MiB / 502.14 MiB  100.00% 7.75 MiB
        > gcr.io/k8s-minikube/kicbase...: 361.09 MiB / 361.09 MiB  100.00% 5.08 MiB
    🔥  Creating docker container (CPUs=2, Memory=3900MB) ...
    🐳  Preparing Kubernetes v1.21.2 on Docker 20.10.7 ...
        ▪ Generating certificates and keys ...
        ▪ Booting up control plane ...
        ▪ Configuring RBAC rules ...
    🔎  Verifying Kubernetes components...
        ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
    🌟  Enabled addons: storage-provisioner, default-storageclass
    💡  kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
    🏄  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
    
  • minikubeステータスコマンド
  • $ minikube status
    minikube
    type: Control Plane
    host: Running
    kubelet: Running
    apiserver: Running
    kubeconfig: Configured
    

    Kubectlをインストールする


    Kubectlのインストールはオプションですminikube パックされた望ましいバージョンkubectlそれで、我々がインストールしないならばkubectl 明示的に、kubectl 以下のコマンド
    minikube kubectl -- <expected kubectl command>
    
    明示的にインストールするならkubectl , その後、我々は呼び出すことができますkubectl 下記のコマンド
    kubectl <expected kubectl command>
    
    Kubectlのインストール手順
    Kubectlをインストールするには以下のコマンドを実行しますubuntu
    sudo snap install kubectl --classic
    kubectl version
    

    Minikubeクラスタの確認と実行

  • 私たちはkubectl インストールされたクラスタと他の詳細を確認するコマンド.
  • 我々は、新しいクラスタを使用して作成にアクセスするために使用することができますminikube
  • kubectl get po -A
    
    or
    minikube kubectl -- get po -A
    
  • それは以下の出力を示しますminikube
  • Minikube展開の一部として利用可能な制御プレーンと労働者ノードからのコンポーネントに注意してください
  • $ kubectl get po -A
    NAMESPACE              NAME                                         READY   STATUS    RESTARTS   AGE
    kube-system            coredns-558bd4d5db-4tncm                     1/1     Running   5          9d
    kube-system            etcd-minikube                                1/1     Running   5          9d
    kube-system            kube-apiserver-minikube                      1/1     Running   5          9d
    kube-system            kube-controller-manager-minikube             1/1     Running   5          9d
    kube-system            kube-proxy-wtzn9                             1/1     Running   5          9d
    kube-system            kube-scheduler-minikube                      1/1     Running   5          9d
    kube-system            storage-provisioner                          1/1     Running   10         9d
    kubernetes-dashboard   dashboard-metrics-scraper-7976b667d4-cssj8   1/1     Running   5          9d
    kubernetes-dashboard   kubernetes-dashboard-6fcdf4f6d-kqr78         1/1     Running   10         9d
    
  • その後、新しいK 8 S展開の作成を行うことができます.
  • minikube kubectl -- create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
    minikube kubectl -- expose deployment hello-minikube --type=NodePort --port=8080
    
    minikube kubectl -- get services hello-minikube
    minikube service hello-minikube
    
  • Minikubeクラスタ全体は、以下のコマンドを使用して視覚化できます.
  • minikube dashboard
    

    結論

  • 我々は、チュートリアルを始めたKubernetesの終わりに来ました-パート1
  • これを試してみて、Kubernetes
  • 我々は、パート2でポッドとサービスの配備のような次のレベル話題を見ます
  • 参考文献


    Kubernetes official documentation
    Minikube documentation