DockerDesktopでmisskeyを動かす
Docker Desktop上でkubernetesを起動して、その上にmisskeyを構築してみます。
バージョン
- Docker Desktop
- 4.21.1
- docker
- 24.0.2
- k8s
- 1.27.2
- helm
- 3.10.3
k8sの起動
Docker Desktop Settings -> Kubernetes -> Enable Kubernetes にチェックを入れて有効化しておきます。
適当にPodの起動状態を確認しておきます。
1kubectl get pod -n kube-system
2NAME READY STATUS RESTARTS AGE
3coredns-5d78c9869d-2tn9p 1/1 Running 2 (4m2s ago) 6d19h
4coredns-5d78c9869d-647kd 1/1 Running 2 (4m2s ago) 6d19h
5etcd-docker-desktop 1/1 Running 2 (4m2s ago) 6d19h
6kube-apiserver-docker-desktop 1/1 Running 2 (4m2s ago) 6d19h
7kube-controller-manager-docker-desktop 1/1 Running 2 (4m2s ago) 6d19h
8kube-proxy-qdzs4 1/1 Running 2 (4m2s ago) 6d19h
9kube-scheduler-docker-desktop 1/1 Running 2 (4m2s ago) 6d19h
10storage-provisioner 1/1 Running 4 (3m29s ago) 6d19h
11vpnkit-controller 1/1 Running 2 (4m2s ago) 6d19h
ingressの設定
公式ドキュメントを参考にingressを動作させるのに必要なマニフェストをapplyします。
1kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.1/deploy/static/provider/cloud/deploy.yaml
helmを使ってmisskeyを構築
configを書き出します。
1helm inspect values TrueCharts/misskey > misskey-config.yaml
URLをDocker Desktopで使われているものに変更しておきます。
1misskey:
2 # Final accessible URL seen by a user. ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE URL SETTINGS AFTER THAT!
3- url: "https://example.tld/"
4+ url: "http://kubernetes.docker.internal/"
5 # ID generation method. 'aid' recommended.
6 id: "aid"
applyします
1helm install misskey -n misskey -f misskey-config.yaml TrueCharts/misskey
Podの起動状況を確認して起動したことを確認します。
1kubectl get pod -n misskey
2NAME READY STATUS RESTARTS AGE
3misskey-77f675c9bb-j5wgg 1/1 Running 1 (32m ago) 29h
4misskey-postgresql-0 1/1 Running 1 (32m ago) 31h
5misskey-redis-0 1/1 Running 1 (32m ago) 29h
ingressの設定
port-forwardで中身を見ても良いですが、せっかくなのでingressで公開します。
1apiVersion: networking.k8s.io/v1
2kind: Ingress
3metadata:
4 name: misskey-ingress
5 namespace: misskey
6 annotations:
7 nginx.ingress.kubernetes.io/rewrite-target: /
8spec:
9 ingressClassName: nginx
10 rules:
11 - host: kubernetes.docker.internal
12 http:
13 paths:
14 - pathType: Prefix
15 path: /
16 backend:
17 service:
18 name: misskey
19 port:
20 number: 3003
applyします。
1kubectl apply -f misskey-ingress.yaml
kubernetes.docker.internalにアクセスして動作することを確認します。
適当にローカルで動かすだけなら思ったより簡単だな…となるなど pic.twitter.com/tzLgjO90Qg
— スカイ (@skyblue3350) July 17, 2023
絵文字の登録なども問題なさそうでした。
適当に遊んでる pic.twitter.com/iTDZfKNDHT
— スカイ (@skyblue3350) July 17, 2023