k8s 3일차
K8S - NameSpace
-
쿠버네티스에서는 리소스를 논리적으로 구분하기 위해 네임스페이스 (Namespace)라는 오브젝트를 제공한다.
-
네임스페이스는 Pod, Replica Set, Deployment, Service 등과 같은 쿠버네티스 리소스들이 묶여 있는 하나의 가상 공간 또는 그룹이다.
kubectl get namespaces(ns) // 해당 명령으로 네임스페이스 목록을 확인할 수 있다.
# k8s 네임스페이스(Namespace) 실습
kubectl get nodes // 노드 연결 확인
kubectl get namespaces(ns) // 기본적으로 3개의 네임스페이스가 존재한다. default, kube-public, kube-system
kubectl get pods --namespace default // deafult는 쿠버네티스를 설치하면 자동으로 사용하도록 설정되는 네임스페이스이다. kubectl 명령어로 쿠버네티스 리소스를 사용할 때는 기본적으로 default namespace를 사용한다.
kubectl get pods
kubectl describe pod hostname-deployment-xxxxxxxxxxxxxxx // pod중 하나의 이름을 확인해보면 Name space가 default임을 확인
kubectl get pods -n kube-system // kube-system에는 pod가 생성될때 필요한 핵심적인 시스템요소이다. 인위적인 삭제를 해선 안됨.
cd ..
cd chapter7
vi production-namespace.yaml // namepaces 3개를 확인
kubectl apply -f production-namespace.yaml
kubectl get ns // production 이름의 ns를 확인
kubectl get pod // 하나의 pod 네임을 복사
kubectl edit [Pod-name] -n [namespace] // 해당 명령으로 namespace의 명을 수정할 수 있다. 실행중인 pod의 네임스페이스는 변경할 수 없다.
kubectl describe deploy [디플로이명] -n [namespace명] // 해당 디플로이의 네임스페이스와 값을 확인할 수 있고, -n 으로 네임스페이스명을 써주지 않으면 기본적으로 default 값을 설명해준다.
=> namespaces 은 aws에서 k8s 구축 후 다시 실습
# k8s wordpress
cd /
mkdir wordpress
systemctl status vsftpd
cd /var/ftp/
chmod 777 pub
mkdir /wordpress
mv wordpress.zip /wordpress
cd /wordpress
unzip wordpress.zip
rm -rf wordpress.zip
vi password.txt
!
test-passwd
!
kubectl get all
vim mysql.yaml // password 물어볼떄 password.txt 파일이 key값으로 자동 입력됨 파일의 내용을 자동입력하는것이 시크릿이다.
kubectl apply -f mysql.yaml // 스토리지를 생성하지 않아서 pending 상태이다.
vim mysql.yaml // mysql-pass 확인
kubectl create secret generic mysql-pass --from-file password.txt
kubectl apply -f local-volume.yaml
kubectl get pod // pod running 확인
kubectl exec -it mysql-xxxxxx-xxxxxx -- bash // mysql 을 bash 접근
mysql -uroot -p // test-passwd 라고 입력
exit
kubectl apply -f wordpress.yaml
kubectl get pod
kubectl exec -it wordpress-6b6f6fc468-g94qf -- bash
ls // wp의 .php 의 파일이 보인다.
vim worddpress.yaml // NodePort의 30180 확인
kubectl port-forward "service/wordpress" --address='0.0.0.0' 30180:80 & // 저번에 노드들이 노드포트로 접근못하는 버그가 있었음 그래서 강제로 포트 포워딩
ps -ef | grep kubectl // 백그라운드로 kubectl 포트포워딩이 실행되고 있음을 확인할 수 있다.
curl http://192.168.0.100:30180 // html file verify
댓글남기기