Bootcamp

[Kubernetes] Ingress 2

K_Hyul 2024. 2. 7. 10:43
728x90

 

 

kubectl create deployment in-hname-pod --image=sysnet4admin/echo-hname
kubectl create deployment in-ip-pod --image=sysnet4admin/echo-ip



kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/aws/deploy.yaml

-----------------
# baremetal만 사용 가능 
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/baremetal/deploy.yaml
---------------

 

 

kubectl get pods -n ingress-nginx


ubuntu@ip-172-31-8-104:~$ kubectl get pods -n ingress-nginx
NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-5gdwc        0/1     Completed   0          2m9s
ingress-nginx-admission-patch-gvglv         0/1     Completed   0          2m9s
ingress-nginx-controller-5c778bffff-cdd2c   1/1     Running     0          2m1s

# nginx controller
ingress-nginx-controller-5c778bffff-cdd2c   1/1     Running     0          2m1s
# ingress-config.yaml 생성
vim ingress-config.yaml 

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-nginx
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: hname-svc-default
            port:
              number: 80
      - path: /ip
        pathType: Prefix
        backend:
          service:
            name: ip-svc
            port:
              number: 80


kubectl apply -f ingress-config.yaml

 

 

 

kubectl get ingress
# ingress.yaml 생성
vim ingress.yaml 

apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress-controller
  namespace: ingress-nginx
spec:
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30100
  - name: https
    protocol: TCP
    port: 443
    targetPort: 443
    nodePort: 30101
  selector:
    app.kubernetes.io/name: ingress-nginx
  type: NodePort



kubeclt apply -f ingress.yaml

 

 

kubectl get services -n ingress-nginx 


kubectl expose deployment in-hname-pod --name=hname-svc-default --port=80,443
kubectl expose deployment in-ip-pod --name=ip-svc --port=80,443


kubectl get services
ubuntu@ip-172-31-8-104:~$ kubectl get services
NAME                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
hname-svc-default   ClusterIP   10.100.212.211   <none>        80/TCP,443/TCP   21s
ip-svc              ClusterIP   10.100.51.121    <none>        80/TCP,443/TCP   11s
kubernetes          ClusterIP   10.100.0.1       <none>        443/TCP          38m

 

 

 

 

 

 

# ip 주소가 뜨는걸 확인할 수 있다.
# 내 node의 ip주소
http://3.35.207.93:30100/ip
# 종료를 위한 삭제
kubectl delete deployment in-hname-pod 
kubectl delete deployment in-ip-pod
kubectl delete services hname-svc-default 
kubectl delete services ip-svc 
kubectl delete -f ingress-nginx.yaml
728x90

'Bootcamp' 카테고리의 다른 글

[Kubernetes] Horizontal Pod Autoscaler  (0) 2024.02.07
[Kubernetes] Ingress  (0) 2024.02.06
[Kubernetes] K8S nodeport  (1) 2024.02.06
[Kubernetes] Rolling Updte  (0) 2024.02.05
[AWS] kubectl 연습  (0) 2024.02.05