ISUCON環境準備
! 出題内容について終了前に公開することは禁じられているのでそれは書かない マシンのセットアップを高速にやる
Scala 3で出るのでJVMが使える環境を迅速に作る
EC2マシンを想定
a.isucon.hみたいな/etc/hostsを用意しておくと便利
ssh環境ができあがった前提
DNS nai
ssh自体はまあなんかいい感じにやれるはず
curl -SsL https://github.com/windymelt.keys > ~/.ssh/authorized_keysする
鍵が対応してないと困るのでssh-keygen -t ecdsa -b 256する
k3sでコンテナ環境を作る
open inbound port in SG
いったんSGを作って保存したあと、ノード間通信を許可するような設定にして保存しなおす
isuconのテンプレによっては最初からプライベートネットワークは疎通する
k3s-installがAmazon Linuxにあるか確認する
nakatta
To specify the K3s (Kubernetes) version, use the INSTALL_K3S_VERSION (e.g., INSTALL_K3S_VERSION="v1.24.10+k3s1") environment variable when running the K3s installation script.
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION="v1.24.10+k3s1" sh -s - server
cat /var/lib/rancher/k3s/server/token
in another node (use priv addr)
code:sh
export K3S_TOKEN="<MAIN_SERVER_NODE_TOKEN>"
基本的なk3sは構築完了
export KUBECONFIG=~/.kube/configを置いて/etc/rancher/k3s/k3s.yamlからコピペして権限調整しておく
あとhelm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
sudo k3s kubectl create namespace cattle-system
cert-managerが必要になる。k3sのk8sのバージョンに対応したLTSを使う
helm repo add jetstack https://charts.jetstack.io
helm repo update
code:sh
helm install cert-manager jetstack/cert-manager --version v1.12.13 --namespace cert-manager --create-namespace --set installCRDs=true
rancherを入れる
code:sh
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.h \ (普段使いたいホスト名とは分ける)
--set replicas=1 \
--set bootstrapPassword=foobar(初期パスワードを設定する)(12文字以上でなければならない)
消すときhelm uninstall rancher --namespace cattle-system
sshでrancherを見られるようにする
ssh host -L 6443:localhost:443
IPはkubectl get servicesで得られるホスト
インスタンスが複数台あるときに互いに通信できるようにする
VPC内でプライベートアドレス通信をすることになる
Scala用のリポジトリをprivateかなんかで掘る
ECR
AWSのコンテナレジストリ
いちおう念のため練習する
GHAからECRにpushできるようにする
手でもいいが
OIDC連携でできるので練習する
Pulumiで立てるのでもいいが、ECRだけなのでまあ手でもいいのかな
ec2内でpullできればいい
IAM RoleがEC2にひっついていたら勝手にpullできるはず
jib
コンテナイメージを作ってくれる君
sbt-jib
sbtでjibする君
skaffold
自動的にコンテナイメージを更新してくれる君
jibと連携できる。sbt-jibとあわせて動かせるか?
定番の問題を解けるようにしておく
過去問をやっておく
テンプレートエンジン
キャッシュ