Foreverly

メモ帳

GoでTravis-CIを使ってのテストとデプロイ

Goで何か書いた時にCIの設定をまとめてみた。 もっといい方法がありそうなので、ブラッシュアップしていきたい。 golangci-lint でsyntaxチェックして goreleaser でdeployの流れ。 .travis.yml travisの設定は以下の用にする。 branches: ciの設定(ブランチ…

Terraformの基本

terraformの基本事項についてaws providerを使用して確認していく。 terraformコマンドで構築する前にクレデンシャル情報を環境変数に渡しておくのを忘れずに。 export AWS_ACCESS_KEY_ID=hogehoge export AWS_SECRET_ACCESS_KEY=hogehoge export AWS_DEFAUL…

GKE + datadogの監視の仕組みをhelmfileを使っての下準備

GKE + datadogの監視をするのにhelmfileを使ってdatadog-agentを入れるのと、 helmfileをCircle CIで回してパッケージ管理の準備までしてしまおうというもの。 Integrationの有効化 Datadogなので、まずはintegrationの有効化 必要に応じてだけど、代替以下 …

Creating multi master cluster with kubeadm(ver1.14以上)

前回kubeadmでマルチマスターのクラスタ構築をしたが、kubeadm1.14で証明書の発行と配布がされるようになったので試してみた。 document https://kubernetes.io/docs/setup/independent/install-kubeadm/ https://kubernetes.io/docs/setup/independent/crea…

Terraform and CORS-Enabled AWS API Gateway and AWS WAF

この記事はAWS WAF と API Gateway endpoint で CORS を有効化について。 以下にsampleを載せてあります。 REST API リソースが API 独自のドメイン以外のドメインからリクエストを受け取る場合、 リソースの選択されたメソッドで Cross-Origin Resource Sha…

AWS構築[Cloudfront+ELB+WEB+DB+S3]

AWSなれるために2018年ごろに手でポチポチ構築したときのメモ なので今は設定画面とか変わっているものがありそう [Cloudfront+ELB+WEB+DB+S3] 構成。 ほとんどの場合、Terraformで構築すると思うけど、 その前のAWS入門として一応残しておきます。 仕様と構…

podのCrashLoopBackOff原因およびNodeのNot Readyフラッピング問題調査

これは何? とあるPodがCrashLoopBackOffのステータスになりあがってくれず、 それにあわせてNodeのstatusがNot Readyでフラッピングしている。 調査しつつ周辺技術(kubelet, CRI,CNIとか)についても調べて自信ニキになりたい。 事象 fluentdのpodがCrashLoop…

kubeadmでHA構成のetcdクラスタ構築

最新手順はこちら Kubeadmは、コントロールプレーンノード上のkubeletによって管理される静的ポッドで単一メンバーのetcdクラスタをデフォルトで実行する。 etcdクラスターに含まれるメンバーは1つだけで、メンバーが使用不可になっても持続できないため、こ…

Creating multi master cluster with kubeadm(ver1.13以下)

document https://kubernetes.io/docs/setup/independent/install-kubeadm/ https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ kubeadmのトラブルシューティング 始める前に 以下のいずれかを実行している1台以上のマシンを用意 Ubuntu…

unshareコマンドでLinuxのNamespaceに入門

Namespaceはコンテナで使われている技術の一つで、コンテナを理解深めるために知っておくとよいので調べてみた。 どんな使われ方をしているかというと、 例えばPID namespaceはPIDの number spaceを隔離する。 これは同じホスト上で実行されている2つのプロ…

2018年読んだ本

2018年の読書メーター読んだ本の数:15読んだページ数:4818ナイス数:70アシュリーの戦争 -米軍特殊部隊を最前線で支えた、知られざる「女性部隊」の記録の感想15時間ほどで読めた。CST(文化支援部隊)という女性メンバーだけの特殊部隊を追ったノンフィクシ…

Kubernetes Application Update

303-app-updateの内容 Kubernetes Application Update 今回では、Kubernetesクラスタにデプロイされたアプリケーションを使用して更新する方法について説明しデプロイします。 また、アプリケーションのCanary Deploymentについても見ていきます。 Deploymen…

Service Discovery for Microservices with Kubernetes

302-app-discovery Service Discovery for Microservices with Kubernetes ハードコードされたIPアドレスを使用するのではなく、 アプリケーション内のさまざまなマイクロサービスがサービス検出を使用してインフラストラクチャ内で互いにどのように位置付け…

k8sクラスタのアップグレード

203-cluster-upgrades Kubernetesクラスタのアップグレード AWS上のKubernetesクラスタのアップグレードは、kopsで簡単にできます。 今回Kubernetesクラスターを2つの方法でアップグレードする方法を試します。 インプレースアップグレード Kopsを使用すると…

シェルスクリプトでのリトライ処理とロック処理

サーバ運用で手動でApache再起動のような対応は辛いので アラートを検知したら自動でApache再起動を実施し、 メールで知らせてくれるスクリプトを書きたいと思い、 リトライ処理やロック処理をシェルスクリプトでどうやるか調べたのでまとめます。 リトライ…

Linuxサーバをセキュアな環境にする

Linuxサーバでセキュアな設定についてまとめてみました。 OSはCentOS6なので古いですが。。 Wordpress周りはまだ調べられてないので どこかでまとめたい。 アドレススキャン対策 ブロードキャスト宛のICMP Echo Requestに対して回答しない vim /etc/sysctl.c…

pythonでしたいと思ったことまとめ①

print()でカンマ区切りで表示したい print(a, b, c, sep=',') 行末の改行を削除したい string.rstrip() 文字列の末尾部分を除去したコピーを返す。引数 chars は除去される文字集合を指定する文字列。 特定の文字を除去したい 文字列.replace() メソッドを利…

AWS Summit Tokyo 2018の聴いたセッションのメモ

AWS

聞いたセッションのメモ セッションだけ聞くなら会場ではなくストリーミング配信をみるのが快適ということに気がついてしまった。 オペレーションの最適化 ベストプラクティスに基づく準備 適切なモニタリング 適切な運用 Well-Architected framework 課題 A…

# 202-service-mesh

Istioも0.8がリリースされたので、Istioの公式ドキュメントからサンプルアプリケーションを動かしたほうがよいです。 それでは続きをしていきます。 Service Mesh integration with Kubernetes Service MeshコンポーネントをKubernetesクラスタに統合する方…

リソースグラフの見方

cactiとgrafanaのグラフの見方について調べました。 cactiグラフの見方 まずグラフを見るときは長いスパンでの確認と単位に気を付けること サーバステータス・OS系 CPU Utilization コアごとにCPU使用率を表示させる Context Switches サーバ側がカウンタな…

# iptablesについて

iptablesについてまとめてみました。 設定ミスすると思わぬサービス影響が出るのでちゃんと理解したいところです。 オプション オプション 意味 -N 新規チェインの追加 -X ユーザチェインの削除 -A ルールの追加 -D ルールの削除 -L チェインにあるルールの…

今度こそMySQLを覚えたい人のためのMySQL5.6入門

最近、今度こそMySQLを覚えたい!!と思いました。 では今からMySQL覚えるなら何から始めるのが良いでしょうか。MySQLは5.7や8も出てきました。 今回は日本語のドキュメントがある唯一のバージョンの5.6系をCentOS6にインストールします。 MySQL 5.6 リファレ…

# シェルスクリプトで使える if,test,for,case,set,readコマンド

シェルスクリプトで使えるコマンドをまとめました。 最後に簡単なシェルスクリプトを実際に書いてみます。 if if文は条件が真の時、偽の時で処理をわけることができます。 if文の文法 if 条件; then 条件が真の時の処理 else 条件が偽である時の処理 fi if~e…

aws-workshop-for-kubernetes(201-cluster-monitoring)

前回の続きから 201-cluster-monitoring Kubernetes Cluster Monitoring Introduction 今回、以下を使用してKubernetesクラスタを監視していきます。 Kubernetesダッシュボード Heapster、InfluxDB、Grafana Prometheus, Node exporter、Grafana Prometheus…

aws-workshop-for-kubernetes(101〜103)

101-start-here Kubernetes - Cloud9開発環境の設定 aws-workshop-for-kubernetesの101-start-here Cloud9を使うためにバージニアリージョンを選び、CloudFormationで既存のVPCを選び サブネットを選択して、次へを押せば、 k8s-workshopというスタックがで…

minikubeでWordPress環境を構築

こちらKubernetes ハンズオンをやりました。 適宜コマンドや説明を修正、補足した作業メモです。 ゴール VirtualBox環境の1VM上にk8s環境をつくりwordpressを構築していきます。 事前知識 Pod Podはk8sでアプリケーションを動かす最小単位のリソースです。 …

# KVM仮想化ホストサーバ間でのゲストサーバ移動

KVM仮想化環境でゲストイメージを別のホストサーバに移動させたので、 手順をまとめておきます。 ゲストサーバの起動状況確認 virsh list --all などで対象のゲストサーバが存在するか確認しましょう。 またイメージファイルや転送先のホストのディスク容量…

JAPAN CONTAINER DAYS V18.04に行ってきた

https://medium.com/@yukotan/japan-container-days-v18-04-%E3%81%AE%E8%B3%87%E6%96%99-4f380fb7b696 サイバーエージェントにおけるプライベートコンテナ基盤AKEを支える技術 https://speakerdeck.com/masayaaoyama/saibaezientoniokerupuraibetokontenaji…

macからvagrantへrake spec実行ユーザ変更

macのユーザでSSH接続しようとするので、vagrant ユーザに変えたかった。 documentには以下のように記載があった。 Serverspec with SSH backend logs in to target servers as a user configured in ~/.ssh/config or a current user. If you’d like to cha…

"msg": "Failed to connect to the host via ssh: Permission denied (publickey,password).\r\n"の対応

環境 コントローラー:Mac ターゲット:CentOS6.9(vagrant) ansible -i inventory/inventory.ini playbook -m ping pingで疎通確認をしたところ以下のメッセージが出た。 SSH接続失敗しているようだった。 "msg": "Failed to connect to the host via ssh: Per…