티스토리 뷰
문제
Cluster: kubectl config use-context k8s
|
appjs pod 구성
apiVersion: v1
kind: ConfigMap
metadata:
name: appjs-node-server
namespace: ingress-nginx
data:
server.js: |
const http = require('http');
const hostname = '0.0.0.0';
const port = 80;
const server = http.createServer((req, res) => {
if (req.url === '/app' || req.url === '/app/') {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/html');
res.end(`<html><body><h1>Hello from Node.js container: ${process.env.HOSTNAME}</h1></body></html>`);
} else {
res.statusCode = 404;
res.end('Not Found');
}
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: appjs
namespace: ingress-nginx
spec:
replicas: 2
selector:
matchLabels:
app: appjs
template:
metadata:
labels:
app: appjs
spec:
containers:
- name: nodejs
image: node:18-alpine
ports:
- containerPort: 80
env:
- name: HOSTNAME
valueFrom:
fieldRef:
fieldPath: metadata.name
volumeMounts:
- name: nodejs-server
mountPath: /usr/src/app
workingDir: /usr/src/app
command: ["node", "server.js"]
volumes:
- name: nodejs-server
configMap:
name: appjs-node-server
defaultMode: 0755
---
apiVersion: v1
kind: Service
metadata:
name: appjs-service
namespace: ingress-nginx
spec:
selector:
app: appjs
ports:
- port: 80
targetPort: 80
type: ClusterIP
문제 풀이
# 1. context 설정
kubectl config use-context k8s
# 2. nginx pod 구성
kubectl run nginx --image=nginx --namespace=ingress-nginx --dry-run=client -o yaml > nginx-pod.yaml
vim nginx-pod.yaml
....
apiVersion: v1
kind: Pod
metadata:
labels:
app: nginx
name: nginx
namespace: ingress-nginx
spec:
containers:
- image: nginx
name: nginx
kubectl apply -f nginx-pod.yaml
# 3. nginx service 생성
kubectl expose pods nginx --name=nginx-service --selector=app=nginx -n ingress-nginx --port=80
curl <nginx-service clusterip>
# 4. app-ingress.yaml 구성
vim app-ingress.yaml
....
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
annotations:
kubernetes.io/ingress.class: nginx
namespace: ingress-nginx
spec:
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-service
port:
number: 80
- path: /app
pathType: Prefix
backend:
service:
name: appjs-service
port:
number: 80
# 5. ingress 확인
curl NODE:<NodePort>/
curl NODE:/<NodePort>/app
Ingress
Make your HTTP (or HTTPS) network service available using a protocol-aware configuration mechanism, that understands web concepts like URIs, hostnames, paths, and more. The Ingress concept lets you map traffic to different backends based on rules you defin
kubernetes.io
'공부자료 > CKA(K8S)' 카테고리의 다른 글
| [CKA] 따배씨 - 20. Persistent Volume Claim을 사용하는 Pod 운영 (0) | 2026.01.11 |
|---|---|
| [CKA] 따배씨 - 19. Persistent Volume 생성 (0) | 2026.01.11 |
| [CKA] 따배씨 - 17. Secret 운영 (0) | 2026.01.03 |
| [CKA] 따배씨 - 16. ConfigMap 운영 (0) | 2026.01.03 |
| [CKA] 따배씨 - 15. NodePort 서비스 생성 (0) | 2026.01.02 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- MAT
- error
- openjdk1.8
- CKA
- Item Prototypes
- bigdata #data_mesh
- lld
- nifi
- flow.xml.gz
- Dataflow
- zabbix
- flink
- Apache Nifi
- 따배씨
- k8s
- java8
- exporter
- hdfs
- Apache
- spark driver
- OOM
- nifi.flowcontroller.autoResumeState
- Bigdata
- Nifi Service
- Nifi Architecture
- 빅데이터
- Discovery Rule
- 설정에러
- 실시간처리
- namenode
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
글 보관함