2022年5月5日木曜日

Oracle Kubernetes Engine を試す - クラスタ作成から Ingress デプロイまで

OCI 用コンテナ起動

docker run -it --rm --name oci debian:bullseye-slim

OCI ツールのインストール

# 必須ツールのインストール
apt-get update
apt-get -y install \
        curl

# インストール
curl -LO https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh \
    && bash install.sh --accept-all-defaults --install-dir /opt/oci-cli --exec-dir /usr/local/bin --script-dir /opt/oci-cli-scripts

kubectl のインストール

apt-get update
apt-get install -y apt-transport-https gnupg2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubectl

OCI ツールの設定

TENANCY_IDOCID をメモして、 oci setup config コマンドでログイン設定を行う。

  • TENANCY_ID: OCI コンソール -> プロファイル -> テナンシ:xxxx -> OCID
  • OCID: OCI コンソール -> プロファイル -> マイ・プロファイル -> OCID
oci setup config

API キーの追加

  1. OCI コンソール -> プロファイル -> マイ・プロファイル -> APIキー -> APIキーの追加 を選択
    • CLI ツールの設定 で作成した公開鍵(~/.oci/oci_api_key_public.pem)を選択

Kubernetes クラスタへの接続情報作成

mkdir -p $HOME/.kube
oci ce cluster create-kubeconfig \
        --cluster-id ocid1.cluster.oc1.ap-osaka-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
        --file $HOME/.kube/config \
        --region ap-osaka-1 \
        --token-version 2.0.0  \
        --kube-endpoint PUBLIC_ENDPOINT

動作確認

root@50c44ed35822:/# kubectl get node
NAME          STATUS   ROLES   AGE   VERSION
10.0.10.111   Ready    node    45m   v1.22.5
root@50c44ed35822:/# kubectl get pod -A
NAMESPACE     NAME                                   READY   STATUS    RESTARTS      AGE
kube-system   coredns-c54fdf6bc-ndlr6                1/1     Running   0             48m
kube-system   csi-oci-node-k52lv                     1/1     Running   1 (44m ago)   45m
kube-system   kube-dns-autoscaler-5cf654bff9-c7h8l   1/1     Running   0             48m
kube-system   kube-flannel-ds-j6xgp                  1/1     Running   1 (44m ago)   45m
kube-system   kube-proxy-tz5wf                       1/1     Running   0             45m
kube-system   proxymux-client-xtdtb                  1/1     Running   0             45m

nginx-ingress-controller のデプロイ

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/1.22/deploy.yaml

公開 IP アドレスを確認する。

root@50c44ed35822:/# kubectl get svc -n ingress-nginx
NAME                                 TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.96.139.46   138.2.48.48   80:31906/TCP,443:30887/TCP   4m25s
ingress-nginx-controller-admission   ClusterIP      10.96.73.63    <none>        443/TCP                      4m25s

参考資料

0 件のコメント:

コメントを投稿