Instantly share code, notes, and snippets.

View virtual-service-switch.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: nginx-ds
namespace: default
spec:
gateways:
- sample-gateway
hosts:
- "sample.hoge.com"
View service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
namespace: sample-ns
labels:
name: nginx
spec:
selector:
app: nginx
View simplicity.md

Regaining Simplicity

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

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

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

    • Googleのイントラでは大量のコードを削除したエンジニアのために「Zombie Code Slayer」バッチが飾られている
View virtual-service.yaml
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: nginx-ds
namespace: default
spec:
gateways:
- sample-gateway
hosts:
- "sample.hoge.com"
View gateway.yaml
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: sample-gateway
namespace: default
spec:
selector:
istio: ingressgateway
servers:
- hosts:
View destination-rule.yaml
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:
View namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: sample-ns
labels:
istio-injection: enabled
View deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-blue
namespace: sample-ns
spec:
replicas: 1
selector:
matchLabels:
app: nginx
View cmd.go
// 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))
}
View prometheus-on-kubernetes.md

概要

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

  • 事前準備
  • クラスター構築
  • RBAC設定
  • コンテナ起動
  • namespace設定
  • configmap設定
    • Prometheus