はじめに
この記事は徐々に追記するような形にしようと思っています。
最初から全てともいかないので、要点だけまとめて学ぶ機会があれば徐々に追記していこうと思います。
Kubernetes とは?
元々 +Docker が前提だったため、とにかく kubernetes 上で Docker を扱うためだけの知識しか入ってないです…
以下参考文献
kubernetes だけではないですが、使うだけだったらとてもわかり易かったです。
【登壇レポート】新卒一年目のSREがコンテナをデプロイできるようになるまでの道のり【JAWS DAYS 2019】
ここらへん良さそう
今さら人に聞けない Kubernetes とは?
数時間で完全理解!わりとゴツいKubernetesハンズオン!!
今の所の知識だと以下ぐらいの認識…
Kubernetes とは、コンテナ技術を活かすための土台となるもの。
こんな感じ↓
※pod に対し container は 1 対 N でも可能
Cluster や namespace は色々意味合いがあるようですが、ざっくりといえば区切りだと思ってもらえれば。タグ付けみたいな感じ。
そして分かる範囲での kubernetes の利点とはこんな感じ…
・設定ファイル一つで pod(Container) を即作成することが可能。
・pod が何らかの原因で kill されても自動で再起動してくれる。
現時点だと要点って感じでもないですね…
kubectl
kubernetes + control で kubectl(予想です)
一言で言えば kubernetes を動かすコマンドですね。
使えるようになるまでは以下
1. kubectl をインストール(homebrew が入っていれば brew install kubectl
)
2. /home に .kube
というディレクトリを作成
3. その中に config
というファイルを作成
4. その中に操作を行う対象となる kubernetes のパラメータを記載、保存
これで準備は完了です。
※現場では Alibaba Cloud を使っていたのですが、4. のパラメータは Cloud 上にありました。
多分ものによりけりだと思うので、その時々で要確認
sample
pod 一覧の取得
$ kubectl get pods -n [namespace]
各 yml 一覧の取得
$ kubectl get deployment -n [namespace]
yml の詳細取得
$ kubectl get service -n [namespace] -o yaml
yml の投入
$ kubectl apply -f [filename.yml]
yml yaml とは
先に単語が出てしまいましたが、yml(yaml) とは?
ざっくり言えば、kubernetes を基軸にしたものの各設定値が記載されたファイル(拡張子)のこと
ファイル内の kind に記載したものにより、役割が変わります。
私が把握しているものでは以下
・deploymennt(pod の作成からコンテナ生成まで)
・service(pod へアクセスを行うための設定)
・configmap(環境変数定義)
・ingress(外部からのアクセス操作) ..etc
詳しくは前述したリンクのハンズオンを読んでみると良いです。
yml と yaml の違いは?
ないです。
呼称の違いなだけで洗わずものは同じだそうです。
前述のコマンドを見ていただくと分かる通り、公式的には yaml が推されているようですが、
多く使われているのは yml のようです。
こんなやり取りもあったり。
yamlの拡張子が yaml と yml で揺れている
このやりとりのように、各現場で使う呼称とかを決めるのも良いかもしれませんね。
〆
正直全容はまったく理解できていないし、見えていない。
深掘りすると闇が深そうなので、インフラがメインとなるわけではないのであれば多少触れる程度で良さげ…
学んだことがあれば追々追加予定