自宅のラボでKubernetesクラスタを建てたら実施することを備忘録として残しておく。
TOC
CNI(Cilium)のインストール
公式を参考に
Ciliumのv1.9をインストール
kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.9/install/kubernetes/quick-hubble-install.yaml
Hubbleもインストール
kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.9/install/kubernetes/quick-hubble-install.yaml
StorageClassの作成
DatastoreのURLを取得
DSURL=$(govc datastore.info -json nuc2-ssd | jq -r '.Datastores[0].Summary.Url')
デフォルトのストレージクラスを作成
cat <<EOF | kubectl apply -f -
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nuc-storage-csi
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: csi.vsphere.vmware.com
parameters:
datastoreurl: "$DSURL"
EOF
MetalLBのインストール
公式を参考に。
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.6/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.6/manifests/metallb.yaml
kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
MetalLB用のアドレスプールを設定。
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.11.71-192.168.11.80
EOF
Istioのインストール
Istioをオペレータを使ってインストール
istioctl operator init
demoプロファイルでインストール
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Namespace
metadata:
name: istio-system
---
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: demo-istio-install
spec:
profile: demo
EOF
関連ツールをインストール
kubectl apply -f samples/addons
kubectl apply -f samples/addons/extras/zipkin.yaml