チラシの裏の書き置き

技術的な話をするブログのタイトルじゃない気がする

k3sで立てたKubernetesに外部からkubectlで接続する

表題の通り。前回Raspberry Piに入れたKubernetes(k3s)に、外部から接続するようにして管理を楽にします。

tech.taiko19xx.net

環境

手順

次のコマンドを実行して接続情報を確認します。

$ k3s kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://localhost:6443
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: 0454e30305dfcd4bbce701973e2e3fd9
    username: admin

ここで必要なのはusernameとpasswordの値です。確認したら、クライアント側でcontextを設定します。

PS> kubectl config set-cluster raspi-k3s --server=https://(接続先IPアドレス):6443 --insecure-skip-tls-verify=true
Cluster "raspi-k3s" set.
PS> kubectl config set-credentials raspi-k3s-admin --username=admin --password=0454e30305dfcd4bbce701973e2e3fd9
User "raspi-k3s-admin" set.
PS> kubectl config set-context raspi-k3s --cluster=raspi-k3s --user=raspi-k3s-admin
Context "raspi-k3s" created.

設定したらcontextを切り替えて、kubectl versionでバージョンが取得できるか確認して完了です。

PS> kubectl config use-context raspi-k3s
Switched to context "raspi-k3s".
PS> kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555
b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"windows/a
md64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1-k3s.4", GitCommit:"52f3b42401c93c36467f1fd6d294a
3aba26c7def", GitTreeState:"clean", BuildDate:"2019-04-15T22:13+00:00Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"
linux/arm"}