トップ 一覧 ping 検索 ヘルプ RSS ログイン

Kubernetesの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!Kubernetes
[Docker]

{{amazon 4873118409}}

*https://knowledge.sakura.ad.jp/20955/
*信頼性が高くスケーラブルな分散システムを上手に構築してデプロイするために必要なソフトウェアを提供
*分散システムとは、異なるマシンで動作するAPIを実装する部品の集まり
*マネージドKubernetesサービス(KaaS:Kubernates-as-a-Service)
**Microsoft:Azure Container Service
**Google:Google Kubernetes Engine
!!!minikube
*https://github.com/kubernetes/minikube
*ローカル開発や学習、テスト用のシンプルなKubernetesシュミレータ
*シングルノードクラスタで、インストールには、ローカルマシンにハイパーバイザーがインストールされていること
*VT-x/AMD-v 仮想化がBIOSで有効化されていること。
!!インストール
*https://kubernetes.io/docs/tasks/tools/install-minikube/
!ローカルクラスタの作成
*ローカル仮想マシンを作成
*Kubernetesを設定
*kubectlを設定
 > minikube start
{{ref_image minikube.png}}
!停止
 > minikube stop
!クラスタを削除
 > minikube delete



!!!Kubernetesクライアント
*公式なクライアントは、kubectl
*Kubernetes APIと連携するコマンドラインツール
*minikube から利用する場合
 > minikube kubectl version

!!クラスタのステータス
 >minikube kubectl version
 Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:40:16Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"windows/amd64"}
 Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

*クラスタを構成しているコンポーネントを確認
 > minikube kubectl get componentstatuses 
 NAME                 STATUS    MESSAGE             ERROR
 controller-manager   Healthy   ok
 scheduler            Healthy   ok
 etcd-0               Healthy   {"health":"true"}

!ワーカーノードの表示
*kubectl get nodes
 > minikube kubectl get nodes
 NAME       STATUS   ROLES    AGE   VERSION
 minikube   Ready    master   36m   v1.15.0

!ノードの詳細情報
*kubectl describe nodes [ノード名]

::基本情報が最初に表示される
 Name:               minikube
 Roles:              master
 Labels:             beta.kubernetes.io/arch=amd64
                     beta.kubernetes.io/os=linux
                     kubernetes.io/arch=amd64
                     kubernetes.io/hostname=minikube
                     kubernetes.io/os=linux
                     node-role.kubernetes.io/master=
 Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                     node.alpha.kubernetes.io/ttl: 0
                     volumes.kubernetes.io/controller-managed-attach-detach: true
 CreationTimestamp:  Mon, 05 Aug 2019 23:17:24 +0900
 Taints:             <none>
 Unschedulable:      false
::ノード上で動いているオペレーションの情報が表示される
*それぞれのノードが十分なディスクとメモリを持っているか
*Kubernatesマスターに対して正常であるか
 Conditions:
   Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
   ----             ------  -----------------                 ------------------                ------                       -------
   MemoryPressure   False   Tue, 13 Aug 2019 01:01:05 +0900   Mon, 05 Aug 2019 23:17:15 +0900   KubeletHasSufficientMemory   kubelet has sufficient memory available
   DiskPressure     False   Tue, 13 Aug 2019 01:01:05 +0900   Mon, 05 Aug 2019 23:17:15 +0900   KubeletHasNoDiskPressure     kubelet has no disk pressure
   PIDPressure      False   Tue, 13 Aug 2019 01:01:05 +0900   Mon, 05 Aug 2019 23:17:15 +0900   KubeletHasSufficientPID      kubelet has sufficient PID available
   Ready            True    Tue, 13 Aug 2019 01:01:05 +0900   Mon, 05 Aug 2019 23:17:15 +0900   KubeletReady                 kubelet is posting ready status
 Addresses:
   InternalIP:  10.0.2.15
   Hostname:    minikube
::マシンのキャパシティ情報の表示
 Capacity:
  cpu:                2
  ephemeral-storage:  17784772Ki
  hugepages-2Mi:      0
  memory:             2038624Ki
  pods:               110
 Allocatable:
  cpu:                2
  ephemeral-storage:  16390445849
  hugepages-2Mi:      0
  memory:             1936224Ki
  pods:               110
::ノード上のソフトウェアバージョンの表示
 System Info:
  Machine ID:                 7ec5a55cfdc14693866eccf4e9a1228f
  System UUID:                2C88347D-32CC-4F26-9AEE-1FED259A233C
  Boot ID:                    1da81daa-4519-4f04-afe0-64efecedd7e7
  Kernel Version:             4.15.0
  OS Image:                   Buildroot 2018.05.3
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  docker://18.9.6
  Kubelet Version:            v1.15.0
  Kube-Proxy Version:         v1.15.0
::ノード上で動いているPod情報の表示
 Non-terminated Pods:         (9 in total)
   Namespace                  Name                                CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
   ---------                  ----                                ------------  ----------  ---------------  -------------  ---
   kube-system                coredns-5c98db65d4-j24hp            100m (5%)     0 (0%)      70Mi (3%)        170Mi (8%)     7d1h
   kube-system                coredns-5c98db65d4-phtm8            100m (5%)     0 (0%)      70Mi (3%)        170Mi (8%)     7d1h
   kube-system                etcd-minikube                       0 (0%)        0 (0%)      0 (0%)           0 (0%)         7d1h
   kube-system                kube-addon-manager-minikube         5m (0%)       0 (0%)      50Mi (2%)        0 (0%)         7d1h
   kube-system                kube-apiserver-minikube             250m (12%)    0 (0%)      0 (0%)           0 (0%)         7d1h
   kube-system                kube-controller-manager-minikube    200m (10%)    0 (0%)      0 (0%)           0 (0%)         7d1h
   kube-system                kube-proxy-wrgp5                    0 (0%)        0 (0%)      0 (0%)           0 (0%)         7d1h
   kube-system                kube-scheduler-minikube             100m (5%)     0 (0%)      0 (0%)           0 (0%)         7d1h
   kube-system                storage-provisioner                 0 (0%)        0 (0%)      0 (0%)           0 (0%)         7d1h
 Allocated resources:
   (Total limits may be over 100 percent, i.e., overcommitted.)
   Resource           Requests     Limits
   --------           --------     ------
   cpu                755m (37%)   0 (0%)
   memory             190Mi (10%)  340Mi (17%)
   ephemeral-storage  0 (0%)       0 (0%)
 Events:
   Type    Reason                   Age                  From                  Message
   ----    ------                   ----                 ----                  -------
   Normal  NodeHasSufficientMemory  7d1h (x8 over 7d1h)  kubelet, minikube     Node minikube status is now: NodeHasSufficientMemory
   Normal  NodeHasNoDiskPressure    7d1h (x8 over 7d1h)  kubelet, minikube     Node minikube status is now: NodeHasNoDiskPressure
   Normal  NodeHasSufficientPID     7d1h (x7 over 7d1h)  kubelet, minikube     Node minikube status is now: NodeHasSufficientPID
   Normal  Starting                 7d1h                 kube-proxy, minikube  Starting kube-proxy.
   Normal  Starting                 12m                  kubelet, minikube     Starting kubelet.
   Normal  NodeHasSufficientMemory  12m (x8 over 12m)    kubelet, minikube     Node minikube status is now: NodeHasSufficientMemory
   Normal  NodeHasNoDiskPressure    12m (x8 over 12m)    kubelet, minikube     Node minikube status is now: NodeHasNoDiskPressure
   Normal  NodeHasSufficientPID     12m (x7 over 12m)    kubelet, minikube     Node minikube status is now: NodeHasSufficientPID
   Normal  NodeAllocatableEnforced  12m                  kubelet, minikube     Updated Node Allocatable limit across pods
   Normal  Starting                 11m                  kube-proxy, minikube  Starting kube-proxy
!!クラスタのコンポーネント
*Kubernetesクラスタを構成する多くのコンポーネントが、Kubernetes自体を使ってデプロイされる
*kube-system Namesspace内で動作
!Kubernetes proxy
*クラスタ内のロードバランスされたServiceにネットワークトラフィックをルーティング
*クラスタ内の各ノードで動いている必要がある
*DaemonSetというAPIオブジェクトが多くのクラスタではノードでプロキシを動作させるために利用される

!!!kubectlコマンド
!!Namespace
*クラスタ内のオブジェクトを構造化
*kubectlはデフォルトではdefaultというNamespaceとやり取り
*--namespace で指定できる
!!Context
*デフォルトのNamespaceを恒久的に変更したい場合
*$HOME/.kube/config に保存される
!!Kubenetes APIオブジェクトの参照
!!Kubernetes APIオブジェクトの参照
*Kubernetes上にあるものは、すべてRESTFulリソースであらわされる