はじめに
OKE(Oralce Container Engine for Kubernetes)のクライアントとして、OCIのコンピュートインスタンスをセットアップした時の備忘録です。
OSはOracle Linux 8.6です。
$ cat /etc/oracle-release
Oracle Linux Server release 8.6
Dockerのインストール
DockerのインストールスクリプトはOracle Linuxに対応してないので、使えませんでした。
$ curl -fsSL get.docker.com -o get-docker.sh
$ ls -l
total 20
-rw-rw-r--. 1 opc opc 19873 Sep 19 06:37 get-docker.sh
$ sh get-docker.sh
# Executing docker install script, commit: 4f282167c425347a931ccfd95cc91fab041d414f
ERROR: Unsupported distribution 'ol'
こちらを参考に個別にインストールします。
https://zenn.dev/kyami/articles/15185192395cb7
パッケージのアップデート
$ sudo yum update -y
$ sudo yum upgrade -y
リポジトリの設定
$ sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
Dockerのインストール
$ sudo dnf install -y docker-ce --nobest
Docker CE Stable - x86_64 258 kB/s | 27 kB 00:00
Dependencies resolved.
・・・
Installed:
container-selinux-2:2.188.0-1.module+el8.6.0+20721+d8d917a9.noarch containerd.io-1.6.8-3.1.el8.x86_64 docker-ce-3:20.10.18-3.el8.x86_64
docker-ce-cli-1:20.10.18-3.el8.x86_64 docker-ce-rootless-extras-20.10.18-3.el8.x86_64 docker-scan-plugin-0.17.0-3.el8.x86_64
fuse-common-3.3.0-15.0.2.el8.x86_64 fuse-overlayfs-1.9-1.module+el8.6.0+20721+d8d917a9.x86_64 fuse3-3.3.0-15.0.2.el8.x86_64
fuse3-libs-3.3.0-15.0.2.el8.x86_64 libcgroup-0.41-19.el8.x86_64 libslirp-4.4.0-1.module+el8.6.0+20721+d8d917a9.x86_64
slirp4netns-1.2.0-2.module+el8.6.0+20721+d8d917a9.x86_64
Complete!
サービスの起動
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://docs.docker.com
$ sudo systemctl start docker
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2022-09-19 06:54:20 GMT; 13s ago
Docs: https://docs.docker.com
Main PID: 66879 (dockerd)
Tasks: 8
Memory: 29.2M
CGroup: /system.slice/docker.service
mq66879 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
・・・
$ sudo systemctl enable docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
$ systemctl is-enabled docker
enabled
確認
$ sudo docker info
Client:
Context: default
Debug Mode: false
Plugins:
app: Docker App (Docker Inc., v0.9.1-beta3)
buildx: Docker Buildx (Docker Inc., v0.9.1-docker)
scan: Docker Scan (Docker Inc., v0.17.0)
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 20.10.18
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: false
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9cd3357b7fd7218e4aec3eae239db1f68a5a6ec6
runc version: v1.1.4-0-g5fd4c4d
init version: de40ad0
Security Options:
seccomp
Profile: default
Kernel Version: 5.4.17-2136.310.7.1.el8uek.x86_64
Operating System: Oracle Linux Server 8.6
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 15.22GiB
Name: osk-instance01
ID: DDLQ:5JDY:M5HU:YRZS:VODA:EB5C:7UVS:TIX4:JJEK:AV3F:VXAY:ASPC
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
$ docker --version
Docker version 20.10.18, build b40c2f6
以下のコマンドを実行し、一般ユーザ(opc)でDockerコマンドを実行できるようにする。
sudo usermod -aG docker opc
いったんログアウトして再度ログインする。
Gitのインストール
$ sudo yum install git-all -y
Last metadata expiration check: 0:12:13 ago on Mon 19 Sep 2022 06:47:11 AM GMT.
Dependencies resolved.
・・・
Installed:
apr-1.6.3-12.el8.x86_64 apr-util-1.6.1-6.el8.x86_64
git-2.31.1-2.el8.x86_64 git-all-2.31.1-2.el8.noarch
git-core-2.31.1-2.el8.x86_64 git-core-doc-2.31.1-2.el8.noarch
git-credential-libsecret-2.31.1-2.el8.x86_64 git-daemon-2.31.1-2.el8.x86_64
git-email-2.31.1-2.el8.noarch git-gui-2.31.1-2.el8.noarch
git-instaweb-2.31.1-2.el8.noarch git-subtree-2.31.1-2.el8.x86_64
git-svn-2.31.1-2.el8.noarch gitk-2.31.1-2.el8.noarch
gitweb-2.31.1-2.el8.noarch httpd-2.4.37-47.0.2.module+el8.6.0+20724+119b489d.2.x86_64
httpd-filesystem-2.4.37-47.0.2.module+el8.6.0+20724+119b489d.2.noarch httpd-tools-2.4.37-47.0.2.module+el8.6.0+20724+119b489d.2.x86_64
libXft-2.3.3-1.el8.x86_64 libserf-1.3.9-9.module+el8.3.0+7671+a87d5147.x86_64
mod_http2-1.15.7-5.module+el8.6.0+20548+01710940.x86_64 oracle-logos-httpd-84.5-1.0.1.el8.noarch
perl-Authen-SASL-2.16-13.el8.noarch perl-CGI-4.38-2.el8.noarch
perl-Compress-Raw-Bzip2-2.081-1.el8.x86_64 perl-Compress-Raw-Zlib-2.081-1.el8.x86_64
perl-Data-Dumper-2.167-399.el8.x86_64 perl-Digest-1.17-395.el8.noarch
perl-Digest-HMAC-1.03-17.module+el8.3.0+7692+542c56f9.noarch perl-Digest-MD5-2.55-396.el8.x86_64
perl-Digest-SHA-1:6.02-1.el8.x86_64 perl-Encode-Locale-1.05-10.module+el8.3.0+7692+542c56f9.noarch
perl-Error-1:0.17025-2.el8.noarch perl-GSSAPI-0.28-25.el8.x86_64
perl-Git-2.31.1-2.el8.noarch perl-Git-SVN-2.31.1-2.el8.noarch
perl-HTML-Parser-3.72-15.module+el8.3.0+7692+542c56f9.x86_64 perl-HTML-Tagset-3.20-34.module+el8.3.0+7692+542c56f9.noarch
perl-HTTP-Date-6.02-19.module+el8.3.0+7692+542c56f9.noarch perl-HTTP-Message-6.18-1.module+el8.3.0+7692+542c56f9.noarch
perl-IO-Compress-2.081-1.el8.noarch perl-IO-HTML-1.001-11.module+el8.3.0+7692+542c56f9.noarch
perl-IO-Socket-IP-0.39-5.el8.noarch perl-IO-Socket-SSL-2.066-4.module+el8.6.0+20623+f0897f98.noarch
perl-LWP-MediaTypes-6.02-15.module+el8.3.0+7692+542c56f9.noarch perl-MailTools-2.20-2.el8.noarch
perl-Memoize-1.03-421.el8.noarch perl-Net-SMTP-SSL-1.04-5.el8.noarch
perl-Net-SSLeay-1.88-2.module+el8.6.0+20623+f0897f98.x86_64 perl-TermReadKey-2.37-7.el8.x86_64
perl-Time-HiRes-4:1.9758-2.el8.x86_64 perl-TimeDate-1:2.30-15.module+el8.3.0+7692+542c56f9.noarch
perl-URI-1.73-3.el8.noarch perl-YAML-1.24-3.module+el8.1.0+5422+43f20e79.noarch
perl-libnet-3.11-3.el8.noarch subversion-1.10.2-5.module+el8.6.0+20670+d864ac37.x86_64
subversion-libs-1.10.2-5.module+el8.6.0+20670+d864ac37.x86_64 subversion-perl-1.10.2-5.module+el8.6.0+20670+d864ac37.x86_64
tcl-1:8.6.8-2.el8.x86_64 tk-1:8.6.8-1.el8.x86_64
utf8proc-2.1.1-5.module+el8.3.0+7671+a87d5147.x86_64
Complete!
$ git --version
git version 2.31.1
OCI CLIのインストール
$ sudo dnf -y install oraclelinux-developer-release-el8
Last metadata expiration check: 0:15:35 ago on Mon 19 Sep 2022 06:47:11 AM GMT.
Package oraclelinux-developer-release-el8-1.0-7.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
$ sudo dnf install python36-oci-cli
Last metadata expiration check: 0:15:47 ago on Mon 19 Sep 2022 06:47:11 AM GMT.
Dependencies resolved.
・・・
Installed:
python3-arrow-1.1.1-1.el8.noarch python3-jmespath-0.10.0-1.el8.noarch python3-prompt-toolkit-3.0.29-1.0.2.el8.noarch python3-terminaltables-3.1.0-1.0.1.el8.noarch
python3-typing-extensions-3.7.4.2-1.el8.noarch python3-wcwidth-0.2.5-3.el8.noarch python36-oci-cli-3.16.1-1.el8.noarch
Complete!
$ oci -v
3.16.1
初期設定
ユーザのAPIキー作成
「追加」をクリックすると以下の画面になるので、「構成ファイルのプレビュー」をコピーします。
設定ファイルの作成
コピーした内容を以下のファイルに保存します。
$ vim .oci/config
.oci/config
[DEFAULT]
user=ocid1.user.oc1..aaaaaaaa4xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
fingerprint=24:4d:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
tenancy=ocid1.tenancy.oc1..aaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
region=ap-osaka-1
key_file=/home/opc/.oci/oci_api_key.pem #ここではこのファイル名で保存するので、ディレクトリを指定します。
秘密キーと公開キーの保存
ダウンロードした秘密キーと公開キーをそれぞれ以下のように保存します。
$ ls -l .oci/
total 12
-rw-------. 1 opc opc 299 Sep 19 07:19 config
-rw-------. 1 opc opc 1704 Sep 19 07:22 oci_api_key.pem
-rw-------. 1 opc opc 451 Sep 19 07:22 oci_api_key_public.pem
kubectlのインストール
$ curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 42.9M 100 42.9M 0 0 36.7M 0 0:00:01 0:00:01 --:--:-- 36.7M
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl
$ kubectl version --client --short
Flag --short has been deprecated, and will be removed in the future. The --short output will become the default.
Client Version: v1.25.1
Kustomize Version: v4.5.7
Kubernetesクラスタへのアクセス
コンソール画面の「クラスタへのアクセス」をクリックします。
「ローカル・アクセス」の手順に沿って設定します。
今回はパブリックエンドポイントにアクセスします。
$ mkdir -p $HOME/.kube
$ oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.ap-osaka-1.aaaaaaaayxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --file $HOME/.kube/config --region ap-osaka-1 --token-version 2.0.0 --kube-endpoint PUBLIC_ENDPOINT
New config written to the Kubeconfig file /home/opc/.kube/config
$ export KUBECONFIG=$HOME/.kube/config
$ kubectl get node
NAME STATUS ROLES AGE VERSION
10.0.10.169 Ready node 23h v1.24.1


