2020年8月21日金曜日

k8s yamlに記載する項目について

yamlに記載する内容についておさらい。 


Kubernetesオブジェクトを.yamlファイルに記載して作成する場合、下記に示すフィールドに値をセットしておく必要があります:

  • apiVersion - どのバージョンのKubernetesAPIを利用してオブジェクトを作成するか
  • kind - どの種類のオブジェクトを作成するか
  • metadata - オブジェクトを一意に特定するための情報、文字列のnameUID、また任意のnamespaceが該当する
  • spec - オブジェクトの望ましい状態

specの正確なフォーマットは、Kubernetesオブジェクトごとに異なり、オブジェクトごとに特有な入れ子のフィールドを持っています。Kubernetes API リファレンスが、Kubernetesで作成できる全てのオブジェクトに関するspecのフォーマットを探すのに役立ちます。 例えば、Podオブジェクトに関するspecのフォーマットはPodSpec v1 coreを、またDeploymentオブジェクトに関するspecのフォーマットはDeploymentSpec v1 appsをご確認ください。


参照先:
https://kubernetes.io/ja/docs/concepts/overview/working-with-objects/kubernetes-objects/

2020年8月17日月曜日

nodeのメンテナンス方法について

1)masterにログインして、対象のノードに対して以下のコマンドを投入する。

kubectl drain [node名]
kubectl uncordon [node名]


参照ページ:
https://kubernetes.io/docs/tasks/administer-cluster/cluster-management/#maintenance-on-a-node

2020年8月16日日曜日

nodeの切り離し方法について

1)Masterにログインする


2)以下のコマンドでmasterから切り離しを行う
kubectl delete node [node名]



nodeのステータスがNotReadyからReadyにする対策方法

Master側でkubectl get nodeを実施した時に
一部のnode(rasp-node2)だけNotReadyになっているので対処を行う。 

rasp-node2にログインする

1)systtemctl status kubeletを実施したところ
以下のメッセージが表示される

Unable to update cni config: No networks found in /etc/cni/net.d


2)以下のコマンドを実施する

systemctl daemon-reload
systemctl enable kubelet && systemctl restart kubelet


再度、Masterにログインして、kubectl get nodeを実施したところ
以下の結果になる


2020年8月14日金曜日

新規で、nodeを追加時に行うこと

新規で作成したNodeをMasterに参加させたい場合、以下のコマンドを行うこと 


kubeadm token create --print-join-command

注意:上記発行後、24時間経過すると使用期限を失われるので
再度、kubeadm token createコマンドを投入すること!!



kubectlが使用不可になっている件

 1)kubectlコマンドを投入すると、以下のメッセージが出てしまい接続拒否されてします。




2)journalctlコマンドを投入する

swapが有効になっているのでkubectlコマンドの稼働が出来ないようだ



3)swapを完全に停止を行う

sudo systemctl stop dphys-swapfile

sudo systemctl disable dphys-swapfile



4)念のためにリブートを実施して、kubectlコマンドを実施すると

想定通りに利用可能であることを確認


注意:

システム起動直後に、kubectlコマンドを投入すると、接続拒否されるので

数分待ってから実施する。



EFS(Dockerfile)の記載について注意

  Dockerfileにefsのマウントパス宛に、ファイルコピーを行うと ECSのサービス作成時に、コンテナのデプロイ失敗に(container run time error)になるので 別経由で、EFSにファイルをコピーした方が良い!! <Dockerfile> ...