Rancher 2.0을 GKE 클러스터에 배포하고 GKE 클러스터 자체를 관리합니다.

Rancher 2.0에서는 기존 Kubernetes 클러스터를 가져오고 관리할 수 있습니다.

Rancher 서버 자체를 Kubernetes상에서 이동하는 것도 (이전과 같이) 가능하다.

Rancher를 GKE에 배포



예를 들어 다음 YAML과 같이 할 수 있습니다.

여기에서는 Cloud SQL을 사용해 보았지만, MySQL이라면 무엇이든 좋다.

그 중 helm install 할 수 있게 될 것을 기대.
# MySQL needs to be setup as follows:
# - Create a Cloud SQL instance
# - Set up SQL Proxy via Helm ( https://github.com/kubernetes/charts/tree/master/stable/gcloud-sqlproxy  )
# - Create `rancher-secret` secret for `dbuser` and `dbpass` ( https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-files-from-a-pod )
# - Create "cattle" DB ( https://rancher.com/docs/rancher/v1.6/en/installing-rancher/installing-server/ )

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: rancher
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: rancher
    spec:
      containers:
      - name: rancher
        image: rancher/server:preview
        args: ["--db-host", "sqlproxy-gcloud-sqlproxy"]
        env:
          - name: CATTLE_DB_CATTLE_USERNAME
            valueFrom:
              secretKeyRef:
                name: rancher-secret
                key: dbuser
          - name: CATTLE_DB_CATTLE_PASSWORD
            valueFrom:
              secretKeyRef:
                name: rancher-secret
                key: dbpass
        ports:
        - containerPort: 8080

---

# Note: Rancher Host Registration URL needs to be http://$(kubectl get service rancher-port  -o json | jq -r .spec.clusterIP):8080
apiVersion: v1
kind: Service
metadata:
  name: rancher-port
spec:
  selector:
    app: rancher
  type: NodePort
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
      nodePort: 30000

GKE에 배포한 Rancher로 GKE 관리


http://<任意のminionのIP>:30000에 액세스하면 Rancher UI가 표시됩니다.

(물론, 이 포트를 그대로 인터넷에 개방하는 것은 위험하기 때문에, 적절히 ssh -L 8080:<任意のminionのIP>:30000 <踏み台インスタンス> 등한다)



Host Registration URL에 http://<rancherのclusterIP>:8080를 입력하면 Rancher에 GKE를 등록하기위한 YAML이 표시됩니다. 후에는 kubectl apply 할 뿐.

좋은 웹페이지 즐겨찾기