[zaki@k8s-master01 ~]$ curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 40.7M 100 40.7M 0 0 7532k 0 0:00:05 0:00:05 --:--:-- 8241k
[zaki@k8s-master01 ~]$ sudo install skaffold /usr/local/bin/
[sudo] zaki のパスワード:
[zaki@k8s-master01 ~]$ skaffold version
v1.9.1
[zaki@k8s-master01 ~]$
[zaki@k8s-master01 ~]$ mkdir src
[zaki@k8s-master01 ~]$ cd src/
[zaki@k8s-master01 src]$ git clone https://github.com/GoogleContainerTools/skaffold
Cloning into 'skaffold'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 75913 (delta 5), reused 4 (delta 0), pack-reused 75898
Receiving objects: 100% (75913/75913), 65.65 MiB | 5.74 MiB/s, done.
Resolving deltas: 100% (46015/46015), done.
[zaki@k8s-master01 src]$ cd skaffold/examples/g
gcb-kaniko/ generate-pipeline/ getting-started/ getting-started-kustomize/ google-cloud-build/
[zaki@k8s-master01 src]$ cd skaffold/examples/getting-started
[zaki@k8s-master01 getting-started]$
[zaki@k8s-master01 getting-started]$ ls
Dockerfile README.md k8s-pod.yaml main.go skaffold.yaml
[zaki@k8s-master01 getting-started]$ ls -a
. .. Dockerfile README.md k8s-pod.yaml main.go skaffold.yaml
[zaki@k8s-master01 getting-started]$ cat Dockerfile
FROM golang:1.12.9-alpine3.10 as builder
COPY main.go .
RUN go build -o /app main.go
FROM alpine:3.10
# Define GOTRACEBACK to mark this container as using the Go language runtime
# for `skaffold debug` (https://skaffold.dev/docs/workflows/debug/).
ENV GOTRACEBACK=single
CMD ["./app"]
COPY --from=builder /app .
[zaki@k8s-master01 getting-started]$
[zaki@k8s-master01 getting-started]$ cat k8s-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: getting-started
spec:
containers:
- name: getting-started
image: skaffold-example
[zaki@k8s-master01 getting-started]$ cat skaffold.yaml
apiVersion: skaffold/v2beta3
kind: Config
build:
artifacts:
- image: skaffold-example
deploy:
kubectl:
manifests:
- k8s-*
[zaki@k8s-master01 getting-started]$ skaffold dev
Listing files to watch...
- skaffold-example
Generating tags...
- skaffold-example -> skaffold-example:v1.9.0-64-ga3d6f30
Checking cache...
- skaffold-example: Not found. Building
Building [skaffold-example]...
exiting dev mode because first build failed: couldn't build "skaffold-example": docker build: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=null&cachefrom=null&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=null&memory=0&memswap=0&networkmode=&rm=0&shmsize=0&t=skaffold-example%3Av1.9.0-64-ga3d6f30&target=&ulimits=null&version=": dial unix /var/run/docker.sock: connect: permission denied
[zaki@k8s-master01 getting-started]
docker buildしてるな。一般ユーザだと動かん
[zaki@k8s-master01 getting-started]$ sudo /usr/local/bin/skaffold dev
Listing files to watch...
- skaffold-example
Generating tags...
- skaffold-example -> skaffold-example:v1.9.0-64-ga3d6f30
Checking cache...
- skaffold-example: Not found. Building
Building [skaffold-example]...
Sending build context to Docker daemon 3.072kB
Step 1/7 : FROM golang:1.12.9-alpine3.10 as builder
1.12.9-alpine3.10: Pulling from library/golang
9d48c3bd43c5: Pull complete
7f94eaf8af20: Pull complete
9fe9984849c1: Pull complete
cf0db633a67d: Pull complete
0f7136d71739: Pull complete
Digest: sha256:e0660b4f1e68e0d408420acb874b396fc6dd25e7c1d03ad36e7d6d1155a4dff6
Status: Downloaded newer image for golang:1.12.9-alpine3.10
---> e0d646523991
Step 2/7 : COPY main.go .
---> 17024371e8eb
Step 3/7 : RUN go build -o /app main.go
---> Running in c22c7ad9087e
---> e7bbd909861d
Step 4/7 : FROM alpine:3.10
3.10: Pulling from library/alpine
21c83c524219: Pull complete
Digest: sha256:f0e9534a598e501320957059cb2a23774b4d4072e37c7b2cf7e95b241f019e35
Status: Downloaded newer image for alpine:3.10
---> be4e4bea2c2e
Step 5/7 : ENV GOTRACEBACK=single
---> Running in 28f849d0b00e
---> 52b367b4bf03
Step 6/7 : CMD ["./app"]
---> Running in 372abf86dc81
---> 31d1247e5bc2
Step 7/7 : COPY --from=builder /app .
---> 20a7f23e599b
Successfully built 20a7f23e599b
Successfully tagged skaffold-example:v1.9.0-64-ga3d6f30
The push refers to repository [docker.io/library/skaffold-example]
609daa751e03: Preparing
1b3ee35aacca: Preparing
exiting dev mode because first build failed: couldn't build "skaffold-example": denied: requested access to the resource is denied
[zaki@k8s-master01 getting-started]$
エラー。push
しようとしてる?
[zaki@k8s-master01 getting-started]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
skaffold-example v1.9.0-64-ga3d6f30 20a7f23e599b 3 minutes ago 7.58MB
<none> <none> e7bbd909861d 4 minutes ago 352MB
alpine 3.10 be4e4bea2c2e 3 weeks ago 5.58MB
k8s.gcr.io/kube-proxy v1.18.2 0d40868643c6 4 weeks ago 117MB
k8s.gcr.io/kube-apiserver v1.18.2 6ed75ad404bd 4 weeks ago 173MB
k8s.gcr.io/kube-scheduler v1.18.2 a3099161e137 4 weeks ago 95.3MB
k8s.gcr.io/kube-controller-manager v1.18.2 ace0a8c17ba9 4 weeks ago 162MB
k8s.gcr.io/pause 3.2 80d28bedfe5d 3 months ago 683kB
k8s.gcr.io/coredns 1.6.7 67da37a9a360 3 months ago 43.8MB
k8s.gcr.io/etcd 3.4.3-0 303ce5db0e90 6 months ago 288MB
golang 1.12.9-alpine3.10 e0d646523991 9 months ago 350MB
quay.io/coreos/flannel v0.11.0-amd64 ff281650a721 15 months ago 52.6MB
イメージのビルドはできている。
[zaki@k8s-master01 getting-started]$ skaffold run
Generating tags...
- skaffold-example -> skaffold-example:v1.9.0-64-ga3d6f30
Checking cache...
- skaffold-example: Not found. Building
Building [skaffold-example]...
failed to build: couldn't build "skaffold-example": docker build: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=null&cachefrom=null&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=null&memory=0&memswap=0&networkmode=&rm=0&shmsize=0&t=skaffold-example%3Av1.9.0-64-ga3d6f30&target=&ulimits=null&version=": dial unix /var/run/docker.sock: connect: permission denied
む、dev
のときのイメージは使われない?
[zaki@k8s-master01 getting-started]$ sudo /usr/local/bin/skaffold run
Generating tags...
- skaffold-example -> skaffold-example:v1.9.0-64-ga3d6f30
Checking cache...
- skaffold-example: Not found. Building
Building [skaffold-example]...
Sending build context to Docker daemon 3.072kB
Step 1/7 : FROM golang:1.12.9-alpine3.10 as builder
---> e0d646523991
Step 2/7 : COPY main.go .
---> Using cache
---> 17024371e8eb
Step 3/7 : RUN go build -o /app main.go
---> Using cache
---> e7bbd909861d
Step 4/7 : FROM alpine:3.10
---> be4e4bea2c2e
Step 5/7 : ENV GOTRACEBACK=single
---> Using cache
---> 52b367b4bf03
Step 6/7 : CMD ["./app"]
---> Using cache
---> 31d1247e5bc2
Step 7/7 : COPY --from=builder /app .
---> Using cache
---> 20a7f23e599b
Successfully built 20a7f23e599b
Successfully tagged skaffold-example:v1.9.0-64-ga3d6f30
The push refers to repository [docker.io/library/skaffold-example]
609daa751e03: Preparing
1b3ee35aacca: Preparing
failed to build: couldn't build "skaffold-example": denied: requested access to the resource is denied
[zaki@k8s-master01 getting-started]$
一緒だ。
DockerHubにリポジトリskaffold-example
を作成してログイン
[zaki@k8s-master01 getting-started]$ sudo docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: zakihmkc
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
[zaki@k8s-master01 getting-started]$
[zaki@k8s-master01 getting-started]$ sudo /usr/local/bin/skaffold run -d zakihmkc
Generating tags...
- skaffold-example -> zakihmkc/skaffold-example:v1.9.0-64-ga3d6f30
Checking cache...
- skaffold-example: Not found. Building
Building [skaffold-example]...
Sending build context to Docker daemon 3.072kB
Step 1/7 : FROM golang:1.12.9-alpine3.10 as builder
---> e0d646523991
Step 2/7 : COPY main.go .
---> Using cache
---> 17024371e8eb
Step 3/7 : RUN go build -o /app main.go
---> Using cache
---> e7bbd909861d
Step 4/7 : FROM alpine:3.10
---> be4e4bea2c2e
Step 5/7 : ENV GOTRACEBACK=single
---> Using cache
---> 52b367b4bf03
Step 6/7 : CMD ["./app"]
---> Using cache
---> 31d1247e5bc2
Step 7/7 : COPY --from=builder /app .
---> Using cache
---> 20a7f23e599b
Successfully built 20a7f23e599b
Successfully tagged zakihmkc/skaffold-example:v1.9.0-64-ga3d6f30
The push refers to repository [docker.io/zakihmkc/skaffold-example]
609daa751e03: Pushed
1b3ee35aacca: Pushed
v1.9.0-64-ga3d6f30: digest: sha256:1e1a7168b5d56d1367871203f5b966ded2a81eaa32b894929b72782d61b4ecaf size: 739
Tags used in deployment:
- skaffold-example -> zakihmkc/skaffold-example:v1.9.0-64-ga3d6f30@sha256:1e1a7168b5d56d1367871203f5b966ded2a81eaa32b894929b72782d61b4ecaf
unable to connect to Kubernetes: getting client config for Kubernetes client: error creating REST client config in-cluster: unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined
[zaki@k8s-master01 getting-started]$
push
には成功。
今度はk8sの情報がない、と。(~/.kube/configはあるんだけど)
[zaki@k8s-master01 getting-started]$ export KUBERNETES_SERVICE_HOST=https://k8s-master.esxi.jp-z.jp
[zaki@k8s-master01 getting-started]$ export KUBERNETES_SERVICE_PORT=6443
[zaki@k8s-master01 getting-started]$ sudo /usr/local/bin/skaffold run -d zakihmkc
Generating tags...
- skaffold-example -> zakihmkc/skaffold-example:v1.9.0-64-ga3d6f30
Checking cache...
- skaffold-example: Found Remotely
Tags used in deployment:
- skaffold-example -> zakihmkc/skaffold-example:v1.9.0-64-ga3d6f30@sha256:1e1a7168b5d56d1367871203f5b966ded2a81eaa32b894929b72782d61b4ecaf
unable to connect to Kubernetes: getting client config for Kubernetes client: error creating REST client config in-cluster: unable to load in-cluster configuration, KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT must be defined
そういえば環境変数は引き継がない
[zaki@k8s-master01 getting-started]$ sudo -E /usr/local/bin/skaffold run -d zakihmkc
Generating tags...
- skaffold-example -> zakihmkc/skaffold-example:v1.9.0-64-ga3d6f30
Checking cache...
- skaffold-example: Found Remotely
Tags used in deployment:
- skaffold-example -> zakihmkc/skaffold-example:v1.9.0-64-ga3d6f30@sha256:1e1a7168b5d56d1367871203f5b966ded2a81eaa32b894929b72782d61b4ecaf
unable to connect to Kubernetes: getting client config for Kubernetes client: error creating REST client config in-cluster: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory
そんなファイルはない。
ううん?