私はホストとしてRancherOSを使用しており、設定しようとしていますkubectl container。私はイメージを修正して、kubectlのバージョンを最新のもの(1.8.0)に変更し、DockerファイルがなければDockerビルドがapkコマンドを実行できなかったため、Dockerfileにプロキシ設定を追加しました。また、KubernetesはRancherサーバーによって管理されています。 Rancher UIからkubectl CLI設定をダウンロードしました。それは以下の通りです:kubectlコンテナがKubernetesに接続できません
apiVersion: v1
kind: Config
clusters:
- cluster:
api-version: v1
server: "https://rancher.dev.abc.net/r/projects/1a6842/kubernetes:6443"
name: "test"
contexts:
- context:
cluster: "test"
user: "test"
name: "test"
current-context: "test"
users:
- name: "test"
user:
token: "QmFzaWMgTnpV9UZ3hPVVV4TXpaRFJrSTFSRFpDTkNOa2hSUTNscGNsSXpjMXAxVUdacVZUWk9NWFZaYVVGd1NqUk5UazVDUkZSM1lWZFhUZz09"
Dockerfile:
をFROM docker.artifactory.abc.net/alpine:3.6
# Required for apk to install openssl
ENV http_proxy='http://proxy.abc.net:8080' \
https_proxy='http://proxy.abc.net:8080' \
no_proxy='localhost,abc.net'
ADD https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl /usr/local/bin/kubectl
ENV HOME=/config
RUN set -x && \
apk add --no-cache curl ca-certificates && \
chmod +x /usr/local/bin/kubectl && \
\
# Create non-root user (with a randomly chosen UID/GUI).
adduser kubectl -Du 2342 -h /config && \
\
# Basic check it works.
kubectl version --client
USER kubectl
ENTRYPOINT ["/usr/local/bin/kubectl"]
もDockerfileではなく無駄に以下を追加してみました。今
COPY .kube/chain.pem /config/.kube/ca.crt
RUN cat /config/.kube/ca.crt
私はコマンドを実行し、
$ docker run --rm --user $UID -v ~rancher/kubectl/.kube:/config/.kube kubectl:v1.8.0 version
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Unable to connect to the server: x509: certificate signed by unknown authority
上で見たように、クライアントのバージョンが細かい表示されますが、サーバーに接続している間、それは失敗します。 ~rancher/kubectl/.kube
ディレクトリにca.crtファイルをコピーしました。また、ファイルの名前をca.pemに変更しようとしましたが、動作しません。 kubectlがcrt
ファイルを取得できるように、どのパラメータを指定する必要があるのか不明です。