Kubernetesマイクロサービス開発の実践をハンズオン形式で進めているのですが、どうもIngressControllerのデプロイ時に下記のエラーが発生して先に進むことができません。
kubectl -n kube-system describe pod -l app.kubernetes.io/name=aws-load-balancer-controller | less    
Events:
  Type     Reason       Age                    From     Message
  ----     ------       ----                   ----     -------
  Warning  FailedMount  6m55s (x620 over 20h)  kubelet  MountVolume.SetUp failed for volume "cert" : secret "aws-load-balancer-webhook-tls" not found
  Warning  FailedMount  116s (x552 over 20h)   kubelet  Unable to attach or mount volumes: unmounted volumes=[cert], unattached volumes=[], failed to process volumes=[]: timed out waiting for the conditionエラーの原因を探るのもいいのですが、最近EKS Auto Modeなるアドオンいらずのモードができたというので使ってみます。
クラスタ作成時
EKS Auto Modeはノードの管理も自動化されるので、ノードに関する設定は抜いて--enable-auto-modeを追加します。
eksctl create cluster --name=sandbox --region=us-east-1 --enable-auto-modeDB作成時
CSIアドオンを使用しないので、こちらに従ってstorage-class.yamlとpvc.yamlをapplyします。
storage-class.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: auto-ebs-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: ebs.csi.eks.amazonaws.com
volumeBindingMode: WaitForFirstConsumer
parameters:
  type: gp3
  encrypted: "true"pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: auto-ebs-claim
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: auto-ebs-sc
  resources:
    requests:
      storage: 8Gi
bookinfo-reviews-db.yaml
bookinfo-reviews-db.yamlのvolumeClaimTemplates以降は削除してvolumesを下記のように書き換えます。
      volumes:
      - name: initdb
        configMap:
          name: reviews-db-v1-init
          items:
          - key: CREATE_REVIEWS_DATA.sql
            path: ./CREATE_REVIEWS_DATA.sql
      - name: var-lib-mysql
        persistentVolumeClaim:
          claimName: auto-ebs-claim
IngressClassの作成
こちらにあるようにIngressClassを作成します。
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  namespace: game-bookinfo
  labels:
    app.kubernetes.io/name: LoadBalancerController
  name: alb
spec:
  controller: eks.amazonaws.com/albここまでで「4-2-1 データベースのデプロイ」までは動かすことができました。
 
  
  
  
  

コメント