Skip to content

Instantly share code, notes, and snippets.

概要

kubernetesのmetricsをPrometheusを利用して収集する

  • 事前準備
  • クラスター構築
  • RBAC設定
  • コンテナ起動
  • namespace設定
  • configmap設定
    • Prometheus
// ReadMeshConfig gets mesh configuration from a config file
func ReadMeshConfig(filename string) (*meshconfig.MeshConfig, error) {
yaml, err := ioutil.ReadFile(filename)
if err != nil {
return nil, multierror.Prefix(err, "cannot read mesh config file")
}
return model.ApplyMeshConfigDefaults(string(yaml))
}
@tanan
tanan / deployment.yaml
Created October 9, 2018 04:31
nginx deployment yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-blue
namespace: sample-ns
spec:
replicas: 1
selector:
matchLabels:
app: nginx
@tanan
tanan / namespace.yaml
Created October 9, 2018 04:33
create namespace
apiVersion: v1
kind: Namespace
metadata:
name: sample-ns
labels:
istio-injection: enabled
@tanan
tanan / destination-rule.yaml
Created October 9, 2018 04:34
create istio destination rule
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: nginx-dr
namespace: default
spec:
host: nginx-svc.sample-ns.svc.cluster.local
subsets:
- name: blue
labels:
@tanan
tanan / gateway.yaml
Last active November 18, 2018 13:44
create istio gateway
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: sample-gateway
namespace: default
spec:
selector:
istio: ingressgateway
servers:
- hosts:
@tanan
tanan / virtual-service.yaml
Created October 9, 2018 04:36
create istio virtual service
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: nginx-ds
namespace: default
spec:
gateways:
- sample-gateway
hosts:
- "sample.hoge.com"

Regaining Simplicity

  • 大抵のシンプル化はシステムから要素を取り除くことで実現できる

    • すでに利用しなくなったリモートシステムからデータフェッチする処理を削除するだけの場合もあれば、再設計が必要になることもある
    • 例えば、2つのシステムが同じリモートデータにアクセスする必要がある場合、2回フェッチする必要があるが、よりシンプルなシステムは1度だけデータをフェッチして結果をフォワードできるかもしれない
  • シンプル化は効率化である

    • コンピュータ・ネットワークリソースをセーブする代わりに、エンジニアリングの時間や認知(理解)にかかる負荷を節約する => つまり、未来のリリースにとって有効
  • コードを追加することと、取り除くことは同等に祝福される

    • Googleのイントラでは大量のコードを削除したエンジニアのために「Zombie Code Slayer」バッチが飾られている
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
namespace: sample-ns
labels:
name: nginx
spec:
selector:
app: nginx
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: nginx-ds
namespace: default
spec:
gateways:
- sample-gateway
hosts:
- "sample.hoge.com"