반응형

출처 : 서비스 및 파드용 DNS | Kubernetes

 

- 중요

- Pod 의 DNS 주소를 확인 방법

   위의 설명을 보면, Pod는 <pod-ip-address>를 dns 주소로 같는다고 했으므로,

   "1) Pod의 IP주소 확인,  2) Pod IP에  nslookup "  순서로 확인 한다.   

 

□ Pod 의 DNS 주소를 확인 예시

   1) Pod의 IP주소 확인

  - -o wide 옵션으로  Pod의 IP를 확인

 

 

2) Pod IP에  nslookup 

 .  Pod IP는  "." 을 "-"로 대체하여 사용하면 됩니다.

kubectl exec -it busybox -- nslookup 192-168-1-16.default.pod.cluster.local

 

<Pod에  nslookup 성공>

 

  . Pod name을 사용할 경우 ( 실패한다) 

 

반응형

'클라우드 > K8S' 카테고리의 다른 글

[Test용 Pod]  (0) 2023.06.28
[k8s-json] json query 맛보기  (0) 2023.02.10
[k8s]Node Drain - 2 (Pod)  (0) 2023.02.01
[k8s] security context 사용법(with multi-container)  (0) 2023.01.31
[k8s] 신규 인증서 생성, 승인  (0) 2023.01.27
반응형

□ 쓸만한 promql 

 1. k8s 

# 1. k8s 
#   =~: Select labels that regex-match the provided string.  (정규표현식 매칭가능) 
##
container_network_recevie_bytes_total{namespace="kubes-system",pod=~"weave.+"}

"=~" 표현식으로  weave 이하의 모든 pod들을 조회

반응형
반응형

1)  Java 경로, jvm 위치 확인

## java명령어 및  jvm 경로 확인

[node1 ~]$ which java                        ## 1. java 명령어 경로 확인 
/usr/bin/java

[node1 ~]$ ls -l /usr/bin/java                               
lrwxrwxrwx 1 root root 22 Feb  2 13:05 /usr/bin/java -> /etc/alternatives/java


[node1 ~]$ ls -l /etc/alternatives/java      ## 2. 링크파일의 원래 경로 "/usr/lib/jvm/~ 하위를 확인 가능" 
lrwxrwxrwx 1 root root 73 Feb  2 13:05 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/bin/java

jvm의 위치가 " /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/xxx"로 확인 됨.

 

2. jvm 위치에  cacerts 파일 확인 

 

3. keytool로 keystore list 확인

## keystore key list 확인  (default password: changeit) 

[node1 security]$ keytool -list -keystore \
"/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/lib/security/cacerts"
Enter keystore password:


###   --storepaas 옵션으로, 패스워드 입력창 없이 확인 가능
[node1 security]$ keytool -list -keystore \
"/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre/lib/security/cacerts" \
–storepass changeit

  .  keylist 확인 결과

반응형

'프로그래밍 > java' 카테고리의 다른 글

HashMap 순회 에러 방지  (0) 2025.01.02
hashset, treeset 비교  (0) 2024.12.22
hashmap vs treemap 비교  (1) 2024.12.21
이클립스 주요 단축키  (0) 2022.12.30
printf() 출력  (0) 2022.12.21
반응형

<Node Drain 실패>

controlplane ~ ➜  kubectl drain node01 --ignore-daemonsets
node/node01 cordoned
error: unable to drain node "node01" due to error:cannot delete Pods declare no controller (use --force to override): default/hr-app, continuing command...
There are pending nodes to be drained:
 node01
cannot delete Pods declare no controller (use --force to override): default/test-app

There are pending nodes to be drained:
 node01
cannot delete Pods declare no controller (use --force to override): default/hr-app

- 원인 : Drain을 하기 위해선 1개 이상의 Replicaset이 있어야 함.

             즉 deploy,replicaset 으로 replica를 1개 이상 유지 시킬 object가 필요한것이다. 

- 조치 :  1) Pod를   deploy, replicaset으로 바꿔주던지, 

              2) 아니면   " --force " 옵션으로  pod를 영원히 날려버리던지 

              ex) kubectl drain node01 --ignore-daemonsets --force

                 

 

반응형
반응형

ㅁ 각 위치별 security context 적용 범위 

 

Pod는 컨테이너를 담는 보자기? 그릇? 정도로 이해하면 빠를것 같다.

Pod 스펙  (yaml의 빨간색 부분)에 securityContext를 적용했다면 

Pod(보자기) 內 에 모든 컨테이너들이 적용을 받는 것이 맞지만,

컨테이너 스펙 에  SecurityContext( yaml파란색 부분)가 또 있다면,  

파란색 부분(runAsUSer:1002)를 적용 받는다. 

 

요약하면

- 빨간색 SecurityContext의 적용 범위 :   Container2(name:abc)  , Container3 (name:def)

- 파란색 Security Context의 적용 범위 :  Container1(name:web)

 

 

 

 

 

 

 


apiVersion: v1
kind: Pod
metadata:
  name: multi-pod
spec:
  securityContext:
    runAsUser: 1001
  containers:
  -  image: ubuntu
     name: web
     command: ["sleep", “300"]
     securityContext:
      runAsUser: 1002

  -  image: ubuntu
     name: abc
     command: ["sleep", " 300"]

 -  image: ubuntu
     name: def
     command: ["sleep", " 300"]

※ 참조yaml

반응형

'클라우드 > K8S' 카테고리의 다른 글

[k8s] Pod의 DNS 주소  (0) 2023.02.08
[k8s]Node Drain - 2 (Pod)  (0) 2023.02.01
[k8s] 신규 인증서 생성, 승인  (0) 2023.01.27
[k8s] k8s인증서 종류(openssl)  (0) 2023.01.26
helm 명령어  (0) 2023.01.02

+ Recent posts