https://news.v.daum.net/v/20190819152101283



쿠옥은 이에 대해 "내가 말할 수 있는 것은 다른 입장이 돼 생각해보라는 것"이라며 "당신의 어머니, 여자형제, 아내, 여자친구가 짐승 취급당했다면 어떨까?"라고 되물었다. 이어 "나는 일본 회사와 같이 일하고 있고 일본인과도 친구이며 그들을 이해하고 있지만, 동시에 나는 그들이 과거 멍청한 행동을 반복하지 않길 바란다"고 덧붙였다.

쿠옥은 "일제는 대동아 공동번영을 위해 (말레이시아 침공에) 나섰다고 말했지만 '공동번영'이라는 의미는 일본이 90%를 가져가고 10%만을 주겠다는 뜻"이라며 식민통치를 비판했다.


자세전은 아마존에 있다. (언젠가 봐야지..)

https://www.amazon.com/gp/product/9814189731


Posted by '김용환'
,


http://www.yes24.com/Product/Goods/6139530?scode=032&OzSrank=1

구글을 움직이는 10가지 황금율을 읽고 10가지 황금율을 발췌했다.




Google's 10 Golden Rules are:
  • Hire by committee.
  • Cater to their every need.
  • Pack them in.
  • Make coordination easy.
  • Eat your own dog food.
  • Encourage creativity.
  • Strive to reach consensus.
  • Don't be evil (Note: we knew it had to be there somewhere)


1. 채용은 위원회에서 담당한다. 


2. 필요한 것은 모두 충족시킨다.


3. 한곳에 모아놓는다.


4. 조율하기 쉬운 환경을 만든다.


5. 출시 전 자사 제품을 사용하게 한다.


6. 창조성을 장려한다.


7. 합의를 이끌어내기 위해 노력한다.


8. 사악해지지 않는다.


9. 데이터가 판단을 쉽게 하도록 한다.


10. 효과적으로 커뮤니케이션한다. 


'After reading book' 카테고리의 다른 글

[펌] 넥슨, 플레이의 좋은 내용  (0) 2019.10.08
"쿠팡" - 우리가 혁신하는 이유  (0) 2019.10.05
파워풀  (0) 2019.07.25
'플랫폼 제국의 미래'를 보고  (0) 2019.06.24
소프트 스킬의 잼있는 부분 발췌  (0) 2019.03.30
Posted by '김용환'
,


kubernetes namespace 추가하기

$ kubectl create namespace capture

$ kubectl get namespace

NAME            STATUS   AGE

capture         Active   13s


쿠버네티스 설정 yaml 파일에서도 커맨드와 동일한 효과를 줄 수 있다.


---
apiVersion: v1
kind: Namespace
metadata:
name: capture
labels:
app.kubernetes.io/name: capture
app.kubernetes.io/part-of: capture
app.list: phantomjs


Posted by '김용환'
,


쿠버네티스 공식 페이지에는 ingress nginx에 대한 설명이 되어 있다. 

https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md


기본은 아래와 같다. 

https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml


특이할 점은 service는 따로 정의되어 있지 않지만, ingress-nginx namespace가 디폴트로 사용됨을 알 수 있다.


한편, aws에서 l7을 사용하려면 loadbalancer type을  사용하는 것을 참고할 수 있다.

https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/aws/service-l7.yaml


spec:
  type: LoadBalancer
  selector:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  ports:
    - name: http
      port: 80
      targetPort: http
    - name: https
      port: 443
      targetPort: http



이후 아래 링크에서 응용 버전을 참고할 수 있다.


https://knight76.tistory.com/entry/kubernetes-ingress-nginx-%EC%84%A4%EC%A0%95-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0



Posted by '김용환'
,


kubernetes에서는 네임 스페이스를 줘서 상태 정보를 확인한다. 



$ kubectl get pods  -n capture

NAME                             READY   STATUS    RESTARTS   AGE

phantom-server-f597bbbb6-24pww   1/1     Running   0          1d

phantom-server-f597bbbb6-2vljz   1/1     Running   0          1d

phantom-server-f597bbbb6-z7fk5   1/1     Running   0          1d




특정 노드에 대한 로그를 확인할 때도 네임 스페이스를 지정해야 한다.


$ kubectl logs -f phantom-server-f597bbbb6-24pww -n capture

(로그)




따라서 3개의 pods를 모두 보려면 pod 별로 호출해야 한다.



하지만, 

https://github.com/wercker/stern를 사용하면 예쁘게 많은 pods 로그를 쉽게 볼 수 있다. 

맥이라면 brew install stern으로 설치한다.



$ stern phantom-server-f597bbbb6-z7fk5 --namespace capture

(예쁘게 로그)




3개의 포드에 대한 로그를 보려면 다음 커맨드를 실행한다.


$ stern phantom-server --namespace capture





또한 동일한 방식으로 ingress 로그도 출력할 수 있다.



$ kubectl logs ingress-nginx-controller-lh75d  -n ingress-nginx

->


$ stern ingress-nginx-controller  -n ingress-nginx




Posted by '김용환'
,


default namespace 앱을 새로운 namespace로 옮길 때 이슈가 발생할 수 있다.


k8s는 기본적으로 기존 정보를 모른다. 

default namespace에 올린 service,ingress,pods는 그대로 둔채..

새로운 namespace에 service, ingress,pods는 뜬다.


이때 ingress는 같은 포트를 사용하기 때문에 에러가 당연히 발생한다.

디폴트의 ingress는 종료시키고, 새로운 namespace의 ingress는 떠있게 한다.

그리고 default service, pods도 일일이 종료 시킨다. 


다음과 같이 나오면 정상이다. 



$ kubectl get ingress

x


$ kubectl get ingress -n <새로운 namespace>

새로운 ingress


Posted by '김용환'
,



<mac OS>


시스템 환경설정 ->

네트워크 ->

이더넷(또는 와이파이)에서 고급 선택 ->

하드웨어 탭에서 MAC 주소





<윈도우>


윈도수 ->

설정 ->

네트워크 및 인터넷 ->

Wi-Fi -> 하드웨어 속성    (또는) 이더넷 -> 하드웨어 속성   -> 

물리적 주소(MAC) 



Posted by '김용환'
,


Service, Ingress 설정을 주고 ingress 확인하기


아래와 같은 k8s으로 kubectl apply 적용했다.

---
apiVersion: v1
kind: Service
metadata:
name: phantomjs-service
spec:
ports:
- port: 80
protocol: TCP
targetPort: 3001
selector:
app: phantom-server
---
apiVersion: app/v1beta2
kind: Ingress
metadata:
name: phantomjs-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/rewrite-target: /
ingress.kubernetes.io/proxy-body-size: 10m
nginx.org/client-max-body-size: 10m
spec:
rules:
- host: capture.internal.google.com
http:
paths:
- path: /
backend:
serviceName: phantomjs-service
servicePort: 80



 ingress-nginx 네임스페이스를 확인한다.


$ kubectl get pods -n ingress-nginx

NAME                               READY   STATUS    RESTARTS   AGE

default-backend-55d45476bb-q9cwd   1/1     Running   0          14d

ingress-nginx-controller-ff5ht     1/1     Running   0          1d






docker에서 다음을 실행하면 nginx 설정을 확인할 수 있다.

$ kubectl -n ingress-nginx exec -it ingress-nginx-controller-ff5ht /bin/bash

쉘) cat /etc/nginx/nginx.conf





지금까지의 작업을 한 커맨드로 사용해 namespace에 nginx ingress가 하나 밖에 없다면 다음과 같이 쉽게 볼 수 있다.


$ kubectl exec -it -n ingress-nginx $(kubectl -n ingress-nginx get pods | grep ingress-nginx-controller | grep Running | awk '{print $1}' | head -n 1) cat /etc/nginx/nginx.conf 



ingress docker 내부 vi로 보고 싶다면, vi가 설치가 안되어 있어서 보기 어렵다. '| vi - '를 추가한다.


$ kubectl exec -it -n ingress-nginx $(kubectl -n ingress-nginx get pods | grep ingress-nginx-controller | grep Running | awk '{print $1}' | head -n 1) cat /etc/nginx/nginx.conf | vi -





Posted by '김용환'
,


'근성없고 화내는'이라는 뜻이 있지만 

(참고 https://reckon.tistory.com/2186)


소프트웨어 세상에서는 

ansible과 같은 설정 관리 툴로 특정 OS에서 소프트웨어/애플리케이션을 설치 및 설정 한후 

운영을 진행하다 세월이 흘러, 운영체제와 설치소프트웨어도 조금씩 달라진다. 따라서 ansible만 해도 조금씩 playbook을 다르게 써야 하는 경우가 있다. 

이런 환경을 snowflake(눈송이) 시스템이라고 한다.


도커 환경에서 이런 운영 환경을 이겨낼 수 있기에 

docker/cloud /kubernetes 환경에서 기존 레거시와 차별하기 위해 사용되고 있다. 


'영어앤영문권' 카테고리의 다른 글

Stalemate- 교착 상태  (0) 2019.08.24
개발자 영어 - HTTP의 조건부 GET(conditional get)  (0) 2018.08.31
self-contained system (SCS) 번역  (0) 2018.08.28
authz, authn  (0) 2018.08.10
BYOD  (0) 2018.07.28
Posted by '김용환'
,


nginx를 ingress로 사용하는 kubernetes에서 body 크기(jpeg같은 image)때문에 ingress를 통과 못할 수 있다. 413 에러가 나타나는 이유이다.

이럴 때는 client_max_body_size를 설정한다.


ingress.kubernetes.io/proxy-body-size: 10m



참고

https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md#custom-max-body-size

Posted by '김용환'
,