ブロックチェーンは、ネットワーク上のフルノードで同じデータをもつことでデータの信頼性を向上している反面。 データが肥大化していく。フルノードはかなり大容量のメモリとストレージが必要になる。
考えられる対策 ・データを限りなく小さなものにする ・一定のデータは特定のノードにのみ保存される仕組みを作る。
など。
むずかしいなぁ。
プロジェクトマネジメントの基本が全部分かる本
第4章 プロジェクト計画 P97を読む
学べること
* プロジェクトの方向性を決める計画の立て方
* プロジェクトの成否を握る座組のチェック方法
* QCD(品質・コスト・納期)の考え方
* 関係者で効率的な議論や情報共有をする仕組みづくり
現場で回避できること
* ヒアリングや検討が十分にできずに形だけの計画になってしまうこと
* 適切な座組ができずプロジェクトがうまく進まない
* QCDの優先順位を確認しなかったために後で調整が難しくなる
* 会議が多すぎて作業時間がとれない
大事だとおもったのでページに内容をまんま書いた
SpringBootとNext.jsとKubenetesの勉強がてらこんなサイトを作っていたんだけど 6月にTwitter APIからデータが取得できなくなった
ラーメンのお店の名前を含むツイートを定期的に取得して お店毎にランキング形式で表示するサイトだけど、 APIのプランが変わったらしくTweetが取得できなくなり、それから動かせてない。
今は手続きすればTweetを取得のは無料でできるんかな?
-- 8/20追記 FreeプランではTweetの検索はできないことがわかった。 TwitterのDeveloperポータルでFree Featuresに、Twitter Searchがない。
BasicプランだとSearchがある
つまり100ドル払えば、Twitterの検索ができるのね。。ちょっと迷うなぁ
Kubenetes上のMy SQLが起動できなくなった。
Podを再生成して、すぐにエラーになってしまう。
最悪なことにエラーログも出ておらず 原因がわからない。
手で動かして確認するのがいいんだけど、
起動すらしないのでどうしたものかと悩んでしまった。
どうにかする方法がないかとぐぐると
Kubenetes MySQLのPod(Yaml)ファイル 内にcommandを定義することで、
MySQLのDockerのCMD※を上書きできることがわかった。
※コンテナ起動時にデフォルトで実行するコマンド
CMDでmysqldコマンド(mysqlデーモン起動コマンド)を記載
ENTRYPOINT [ \ "prehook", \ "add-server-id.sh", \ "--", \ "/entrypoint.sh" \ ] CMD ["mysqld"]
commandを追加して、コンテナ起動時にはシェルを動かして待機するようにした。
template: metadata: labels: app: mysql-master spec: terminationGracePeriodSeconds: 600 containers: - name: mysql image: XXXXXXXX imagePullPolicy: Always command: ["/bin/sh"] args: ["-c", "sleep 600 && cat /var/log/mysql/mysql-error.log > /dev/termination-log"]
kubctlコマンドでPodを再デプロイ→コンテナにログイン
コンテナに入れるようになった
#kubectl delete -f mysql-master.yaml #kubectl apply -f mysql-master.yaml #kubectl get pods NAME READY STATUS RESTARTS AGE mysql-master-0 1/1 Running 0 9m #kubectl exec --stdin --tty mysql-master-0 -- /bin/bash root@mysql-master-0:/#
MySQL起動コマンドを打ってみるが反応なし ログフォルダを確認してみるとmysql-error.log が出力されていた
root@mysql-master-0:/# mysqld root@mysql-master-0:/# cd /var/log/mysql root@mysql-master-0:/var/log/mysql# ls mysql-bin.index mysql-error.log
mysql-error.logを確認するとスペースがないとログが出ていた。
root@mysql-master-0:/var/log/mysql# cat mysql-error.log . . 2023-02-09T06:23:33.696585+09:00 0 [ERROR] [MY-012640] [InnoDB] Error number 28 means 'No space left on device'
df コマンドを打ってみると/var/lib/mysqlが100%になっていることがわかった。 KubenetesのPersistant Volumeの容量を使い切ってしまっていた。
root@mysql-master-0:/# df -h Filesystem Size Used Avail Use% Mounted on overlay 95G 43G 52G 46% / tmpfs 64M 0 64M 0% /dev tmpfs 16G 0 16G 0% /sys/fs/cgroup shm 64M 0 64M 0% /dev/shm /dev/sda1 95G 43G 52G 46% /etc/hosts /dev/sdp 3.9G 3.9G 288K 100% /var/lib/mysql tmpfs 6.0G 12K 6.0G 1% /run/secrets/kubernetes.io/serviceaccount tmpfs 16G 0 16G 0% /proc/acpi tmpfs 16G 0 16G 0% /proc/scsi tmpfs 16G 0 16G 0% /sys/firmware
Persistant Volumeにパッチを当てて、容量を拡張
# kubenetes % kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE ramentweet-log-pv-claim Pending okteto-standard 203d ramentweet-mysql-pv-claim Bound pvc-3a245f8b-1f10-48e8-b4ed-35673dc49beb 4Gi RWO okteto-standard 404d # kubectl get pv Error from server (Forbidden): persistentvolumes is forbidden: User "system:serviceaccount:okteto:d54deb2f-213a-4b07-98d6-e4aaad41815b" cannot list resource "persistentvolumes" in API group "" at the cluster scope # kubectl patch pvc ramentweet-mysql-pv-claim -p "{\"spec\":{\"resources\":{\"requests\":{\"storage\": \"10Gi\"}}}}" persistentvolumeclaim/ramentweet-mysql-pv-claim patched
MySQL Podを再生成するとエラーにならず起動するようになった!
#kubectl delete -f mysql-master.yaml #kubectl apply -f mysql-master.yaml
年齢も45歳になり、立場的に多くの人を関わることが当たり前になりました。
関わる人たちはそれぞれでプロジェクトに参加し、がんばっているけど、一筋縄ではいかないなと感じてます。
プロジェクトは、うまくいっていると楽しいし、うまくいってなければ楽しくないですね。
プロジェクトをうまくいかせるには何を気をつけないといけないのか。
やらないといけないことは何かを知っていることで成功率をあげることはできるかと思います。
でも、どうやってそれを知ればよいか、それを知るために
「プロジェクトマネジメントの基本が全部わかる本」を買ってみました。
しばらくこれの勉強をしてみようと思います。
アプリケーションをたくさん開いていて、
不要なアプリケーションを1つずつ終了させていくのは面倒。
そんなときに便利な技です。
やり方は、Automatorでアプリケーションを作るです。
プログラミングは不要です。
手順
Cmd + スペースでSpotlight検索から、
「Automator」と打ち込んでも起動可能です。
以下の画像のように設定
あとは保存して出来上がったファイルをクリックすると、動作します。