Kind 빌드/조작 노트
6962 단어 킨드kubernetes
htps : // 기주 b. 이 m/쿠베 r네서 s-해 gs/킨 d/bぉb/마s테 r/ぉ고/ぉ고. pg
소개
Cluster API 을 시도해 보았을 때, 우선 뭔가 k8s 클러스터를 준비할 필요가 있었다.
Kind를 사용하는 것이 빠르고, 지금까지 사용한 적이 없었기 때문에, 이 기회에 시험해 보았습니다.
설치
전제 조건
전제 조건
환경
설치 로그
$ curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.9.0/kind-linux-amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 97 100 97 0 0 302 0 --:--:-- --:--:-- --:--:-- 303
100 642 100 642 0 0 1042 0 --:--:-- --:--:-- --:--:-- 626k
100 7247k 100 7247k 0 0 490k 0 0:00:14 0:00:14 --:--:-- 998k
$ chmod +x ./kind
$ sudo mv kind /usr/local/bin
$ kind version
kind v0.9.0 go1.15.2 linux/amd64
각 조작
클러스터 생성
$ kind create cluster
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.19.1) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Thanks for using kind! 😊
kubeconfig도 만들어졌다.
내용을 확인하면, apiserver의 URL이 https://127.0.0.1:39055
가 되어 있었다.
docke ps
에서 kind 의 컨테이너가 되어 있는 것을 확인할 수 있었습니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
55cc6a93dacb kindest/node:v1.19.1 "/usr/local/bin/entr…" 7 minutes ago Up 7 minutes 127.0.0.1:39055->6443/tcp kind-control-plane
호스트의 39055
번호가 컨테이너의 6443
번호로 포트 포워드되었습니다.
이것에 의해, apiserver 의 엔드 포인트 https://127.0.0.1:39055
에의 요구가, Kind 컨테이너의 6443
차례에 포워드되어 apiserver 에 도착하는 것을 알 수 있다.
클러스터 목록
$ kind get clusters
kind
만든 클러스터 확인
$ kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:39055
KubeDNS is running at https://127.0.0.1:39055/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kind-control-plane Ready master 25h v1.19.1
$ kubectl get all -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/coredns-f9fd979d6-29hpt 1/1 Running 0 25h
kube-system pod/coredns-f9fd979d6-fcrsh 1/1 Running 0 25h
kube-system pod/etcd-kind-control-plane 1/1 Running 0 25h
kube-system pod/kindnet-sxmz9 1/1 Running 0 25h
kube-system pod/kube-apiserver-kind-control-plane 1/1 Running 0 25h
kube-system pod/kube-controller-manager-kind-control-plane 1/1 Running 0 25h
kube-system pod/kube-proxy-v5lvt 1/1 Running 0 25h
kube-system pod/kube-scheduler-kind-control-plane 1/1 Running 0 25h
local-path-storage pod/local-path-provisioner-78776bfc44-m5zkj 1/1 Running 0 25h
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 25h
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 25h
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/kindnet 1 1 1 1 1 <none> 25h
kube-system daemonset.apps/kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 25h
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/coredns 2/2 2 2 25h
local-path-storage deployment.apps/local-path-provisioner 1/1 1 1 25h
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/coredns-f9fd979d6 2 2 2 25h
local-path-storage replicaset.apps/local-path-provisioner-78776bfc44 1 1 1 25h
애플리케이션 배포
$ kubectl apply -f https://k8s.io/examples/service/access/hello-application.yaml
deployment.apps/hello-world created
$ kubectl expose deployment hello-world --type=NodePort --name=example-service
service/example-service exposed
$ kubectl port-forward --address localhost svc/example-service 8080:8080
Forwarding from 127.0.0.1:8080 -> 8080
Handling connection for 8080> 8080
다른 터미널에서 확인하면 앱에 액세스할 수 있음을 확인할 수 있었습니다.
$ curl http://localhost:8080
Hello Kubernetes!
클러스터 삭제
$ kind delete cluster --name kind
Deleting cluster "kind" ...
소감
매우 쉽게 k8s 클러스터를 구축 할 수있었습니다.
앱 테스트라든지 뭐든지 좋기 때문에 k8s를 간편하게 사용하고 싶을 때 편리합니다.
이번에는 싱글 노드 구성 만 시도했지만 다중 노드 클러스터을 만들 수도 있습니다.
참고
$ kind create cluster
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.19.1) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Thanks for using kind! 😊
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
55cc6a93dacb kindest/node:v1.19.1 "/usr/local/bin/entr…" 7 minutes ago Up 7 minutes 127.0.0.1:39055->6443/tcp kind-control-plane
$ kind get clusters
kind
$ kubectl cluster-info
Kubernetes control plane is running at https://127.0.0.1:39055
KubeDNS is running at https://127.0.0.1:39055/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kind-control-plane Ready master 25h v1.19.1
$ kubectl get all -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/coredns-f9fd979d6-29hpt 1/1 Running 0 25h
kube-system pod/coredns-f9fd979d6-fcrsh 1/1 Running 0 25h
kube-system pod/etcd-kind-control-plane 1/1 Running 0 25h
kube-system pod/kindnet-sxmz9 1/1 Running 0 25h
kube-system pod/kube-apiserver-kind-control-plane 1/1 Running 0 25h
kube-system pod/kube-controller-manager-kind-control-plane 1/1 Running 0 25h
kube-system pod/kube-proxy-v5lvt 1/1 Running 0 25h
kube-system pod/kube-scheduler-kind-control-plane 1/1 Running 0 25h
local-path-storage pod/local-path-provisioner-78776bfc44-m5zkj 1/1 Running 0 25h
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 25h
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 25h
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/kindnet 1 1 1 1 1 <none> 25h
kube-system daemonset.apps/kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 25h
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/coredns 2/2 2 2 25h
local-path-storage deployment.apps/local-path-provisioner 1/1 1 1 25h
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/coredns-f9fd979d6 2 2 2 25h
local-path-storage replicaset.apps/local-path-provisioner-78776bfc44 1 1 1 25h
$ kubectl apply -f https://k8s.io/examples/service/access/hello-application.yaml
deployment.apps/hello-world created
$ kubectl expose deployment hello-world --type=NodePort --name=example-service
service/example-service exposed
$ kubectl port-forward --address localhost svc/example-service 8080:8080
Forwarding from 127.0.0.1:8080 -> 8080
Handling connection for 8080> 8080
$ curl http://localhost:8080
Hello Kubernetes!
$ kind delete cluster --name kind
Deleting cluster "kind" ...
매우 쉽게 k8s 클러스터를 구축 할 수있었습니다.
앱 테스트라든지 뭐든지 좋기 때문에 k8s를 간편하게 사용하고 싶을 때 편리합니다.
이번에는 싱글 노드 구성 만 시도했지만 다중 노드 클러스터을 만들 수도 있습니다.
참고
Reference
이 문제에 관하여(Kind 빌드/조작 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nakkoh/items/666ec990616e68220f99텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)