Header Ads Widget

Ticker

6/recent/ticker-posts

Service tạo pull secrets với AWS, Azure, GCR, Docker Private Registry cho Kubernetes

Keywords: Create pull secrets to pull images from aws, azure, gcr,... for k8s local, on-primse

Có ai từng muốn pull images từ aws mà suy nghĩ đến vấn đề hết thời hạn config không? nếu như với một docker-registry bình thường, thì mọi thứ chẳng có gì đáng nói, vì mình chỉ cần đơn giản tạo ra file pull secrets là đủ, sau đó nhét vào file config là chạy, nhưng với aws hoặc một cloud khác thì nó sẻ có thời gian là chỉ có hiệu lực trong vòng 60 phút hay sao đó, mình cũng chẳng nhớ rõ, thành ra với tools này thì khá là hữu dụng cho chúng ta ngày hôm nay đấy

Do Cloud mình đang sử dụng là AWS nên vì thế, mình sẻ hướng  dẫn cho AWS còn các bạn thì có thể tự chỉnh riêng cho đúng với Registry của các bạn nhé, source mình sẻ để link ở phía dưới

Sau khi đã clone code về rồi, các bạn truy cập vào trong folder k8s và chỉnh sửa lại những file ở trong đó để thực hiện tạo service cho nó, với mình thì phải tạo thêm một user admin cho nó nữa

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: monitoring
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: monitoring
Sau khi chạy file này thì chỉnh sửa tiếp thằng deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: registry-creds
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      name: registry-creds
  template:
    metadata:
      labels:
        name: registry-creds
    spec:
      serviceAccountName: admin-user
      containers:
      - image: upmcenterprises/registry-creds:1.10
        name: registry-creds
        imagePullPolicy: Always
        env:
          - name: AWS_ACCESS_KEY_ID
            valueFrom:
              secretKeyRef:
                name: registry-creds-ecr
                key: AWS_ACCESS_KEY_ID
          - name: AWS_SECRET_ACCESS_KEY
            valueFrom:
              secretKeyRef:
                name: registry-creds-ecr
                key: AWS_SECRET_ACCESS_KEY
          - name: awsaccount
            valueFrom:
              secretKeyRef:
                name: registry-creds-ecr
                key: aws-account
          - name: awsregion
            valueFrom:
              secretKeyRef:
                name: registry-creds-ecr
                key: aws-region
Còn file secret.yaml sẻ như sau
apiVersion: v1
kind: Secret
metadata:
  name: registry-creds-ecr
  namespace: kube-system
  labels:
    app: registry-creds
    kubernetes.io/minikube-addons: registry-creds
    cloud: ecr
data:
  AWS_ACCESS_KEY_ID: Change to base-code64
  AWS_SECRET_ACCESS_KEY: Change to base-code64
  aws-account: Change to base-code64
  aws-region: Change to base-code64
type: Opaque
Chú ý là change về code base64 nha, apply hết mớ này coi như là ok rồi đó, mình sẻ để tools để change sang base64 ở đây, các bạn có thể dùng của mình hoặc sử dụng console cũng được, chúc các bạn thành công nhé

Post a Comment

0 Comments