また続き。ネットワークポリシーはない状態。 access-nginx -> default-deny ポリシーの作成順に関係があるのか。 core@kb1 ~ $ kubectl create -f - <<EOF > kind: NetworkPolicy > apiVersion: networking.k8s.io/v1 > metadata: > name: access-nginx > namespa</eof>…
前回の続き。ネットワークポリシー default-deny, access-nginx がある状態から。 $ kubectl get networkpolicy --namespace=policy-demo NAME POD-SELECTOR AGE access-nginx run=nginx 9m54s default-deny <none> 15m allow-all してみる 矛盾するネットワークポ</none>…
引き続き kubernetes で学習。今回はネットワークポリシー初回 caloco の Simple policy tutorial Configure namespaces ネームスペース作成...の前に確認 $ kubectl get ns NAME STATUS AGE default Active 22h kube-node-lease Active 22h kube-public Act…
https://www.nomadproject.io/intro/getting-started/ui.html 前回の続き。server,client1,client2 を起動し、job:example 実行中。 Opening the Web UI http://localhost:4646 にアクセス。チュートリアルのように表示されている。example が running。 Ins…
https://www.nomadproject.io/intro/getting-started/cluster.html Starting the Server サーバー構成ファイルを作成 server.hcl # Increase log verbosity log_level = "DEBUG" # Setup data dir data_dir = "/tmp/server1" # Enable the server server { e…
すっかり忘れたのでおさらい。 https://www.nomadproject.io/intro/getting-started/jobs.html エージェント起動と停止 開発モードでエージェント起動 $ sudo nomad agent -dev エージェント起動 ctrl-c エージェント状態確認 $ nomad agent-info クラスタの…
https://www.nomadproject.io/intro/getting-started/jobs.html Job と TaskGroup Jobは、Nomadの作業負荷を宣言するユーザーによって提供される仕様です。 仕事は望ましい状態の一形態です。 ユーザーは、ジョブが実行されるべきであることを表現しています…
https://www.nomadproject.io/intro/getting-started/running.html エージェントとは クライアント - Nomadのクライアントは、タスクを実行できるマシンです。 すべてのクライアントがNomadエージェントを実行しています。 エージェントは、サーバーへの登録…
クラスタ外から指定したNodeIPを通してpodへアクセスできるようにする。 指定したip の node がダウンしている場合は疎通できない。nodeportも同様 kbhello-service-eip.yaml apiVersion: v1 kind: Service metadata: name: kbhello-service-eip spec: selec…
前回は、クラスタ内部間の通信を調べた。 クラスタ外部 -> サービス -> pod の経路を調べたい。 確認 kb2 に pod:29pkt, pod:nrj9j。kb3 に pod:n9t8t。 $ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES …
service, pod の名前解決を調べた。 最初に確認 kbhello でHOSTNAMEを表示するようにした。 kbhello-deployment が 3podあり、kb2 kb3 の2node で実行中。 $ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATE…
これまなんとなく雰囲気でサービス・ロードバランサを作っていた。serviceはたぶん pod/deployment の前段にあたる概念だよなーと考えていた。 Serviceとは? K8sのサービスは、論理的なPodのセットとそれと通信するためのポリシーを定義する抽象的なものです…
java コンテナイメージのサイズに悩んでいたところ、こんなニュースがあった。 高速起動にはあまり興味がないが、Quarkus のイメージサイズに興味を覚えた。 Javaフレームワーク「Quarkus」登場。Javaコードからネイティブバイナリを生成し瞬時にJavaアプリ…
Logging Architecture を試す。 コンテナ化されたアプリケーションの最も簡単で包括的なロギング方法は、標準出力と標準エラーストリームに書き込むこと クラスタレベルのログ記録では、ログを保存、分析、およびクエリするために別のバックエンドが必要 Kub…
前回の続き。イメージのサイズの縮小を試す。今回は MultiStageBuild の必要性が理解できている。 hirokimatsumoto/alpine-openjdk-11 + alpine:3.8 ここ を参考にした。 イメージサイズ: 78.7MB。これは小さい。 Dockerfile.hiroki FROM hirokimatsumoto/al…
helloworld するだけのコンテナが 121MB ではデカすぎる。JDK11 なんだからコンテナ向けの小さいイメージにしたい。 今回は上手くいかなかった手順を記録。 失敗1 springboot プロジェクトの jdeps は信用できない。 依存モジュールを調べる java.base, java…
ここに練習helloプロジェクト作ったので、k8s にデプロイしてみる https://github.com/tjtjtj/kbhello プライベートリポジトリ起動 プライベートリポジトリ起動 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # docker run -d -p 5000…
configure-pod-configmap やってみたメモ。 最初 configmap がなにもないことを確認 $ kubectl get configmap No resources found. ディレクトリから configmap 作成 mkdir -> game.properties, ui.properties をディレクトリに取得 -> kubectl create confi…
docker プライベートレジストリを準備する レジストリ起動 # docker run -d -p 5000:5000 registry:2 カタログ確認 # curl localhost:5000/v2/_catalog {"repositories":[]} レジストリにログイン # docker login 192.168.0.1:5000 Username: asdf <--- テキ…
シークレットの管理 - 平文 シークレット一覧を確認 $ kubectl get secrets NAME TYPE DATA AGE default-token-klj4b kubernetes.io/service-account-token 3 8d ファイルにシークレットを平文で保存 echo -n "username" > ./username echo -n "this-is-a-pa…
pod でなく deployment で taints/tolerations を試す。 確認 $ kubectl describe node kb1 Taints: node-role.kubernetes.io/master:NoSchedule $ kubectl describe node kb2 Taints: <none> $ kubectl describe node kb3 Taints: <none> テキトーな deployment.yaml ng</none></none>…
coredns が起動しないのを taints tolerations のせいかと勘違いしちょっといじったが違った。今回はちゃんと taints tolerations 試す。 ありがたい資料 Taints and Tolerations https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ …
knative 試してたらグッチャグッチャになったので、クラスタを再構築したメモ。 マスターでワーカーノードを削除 $ kubectl get node NAME STATUS ROLES AGE VERSION kb1 Ready master 14d v1.13.2 kb2 Ready <none> 13d v1.13.2 kb3 Ready <none> 13d v1.13.2 $ kubectl</none></none>…
Performing a Rolling Update https://kubernetes.io/docs/tutorials/kubernetes-basics/update/update-intro/ 前回の続きを確認 $ kubectl get nodes NAME STATUS ROLES AGE VERSION kb1 Ready master 10d v1.13.2 kb2 Ready <none> 10d v1.13.2 kb3 Ready <none> 10d v</none></none>…
Scale Your App https://kubernetes.io/docs/tutorials/kubernetes-basics/scale/scale-intro/ チュートリアルの準備 $ kubectl get nodes NAME STATUS ROLES AGE VERSION kb1 Ready master 10d v1.13.2 kb2 Ready <none> 10d v1.13.2 kb3 Ready <none> 10d v1.13.2 $ ku</none></none>…
Interactive Tutorial で投入した kubectl コマンドをメモ Scale Your App https://kubernetes.io/docs/tutorials/kubernetes-basics/scale/scale-intro/ $ kubectl get deployments deployments の確認 $ kubectl get pods pods の確認 $ kubectl scale dep…
kb1 nginx pod 作成 $ kubectl get pods No resources found. $ kubectl run nginx --image=nginx:1.15.8 kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or …
長いことwindows+hyprevにminikube入れようと格闘していた。思い出した。やりたいのは minikube のインストールでなく Kubernetes だった。そういえば、前に rancher で環境構築とか、素でk8s 構築とかやってたんだった。そこで勉強したらええやn。 https:/…
さくらのナレッジをやってみるシリーズ。今回は minikube 簡単にローカルKubernetes環境を構築できるツール「Minikube」 https://knowledge.sakura.ad.jp/15320/ 準備 vurtualbox kubectl https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-…
どのクラウドでも使えるサーバレス「GitLab Serverless」をGitLabが発表。KubernetesとKnativeがベース https://www.publickey1.jp/blog/18/gitlab_serverlessgitlabkubernetesknative.htmlKnativeをベースにしたサーバレス環境「Pivotal Function Service」…