안녕하세요~ 상단 메뉴중 쿠버네티스 관련 문의를 올릴만한 곳이 없어서 이 곳에 질문 남깁니다.
쿠버네티스 입문중인 중생(?)입니다...
기존에 운영하던 서버를 신규장비로 교체하면서 쿠버네티스를 도입하려고 합니다.
k8s를 직접 설치하자니 머리 꾀나 아플듯 하고.. 간단히 설치해서 활용 가능한 k3s로 결정하고 셋업을 진행중입니다.
로컬에서 virtualbox 및 네이버의 ncloud에서 테스트 시에 바로 세팅이 완료되어서 별 이슈 없겠거니 하고 이용중인 업체에 신규서버 2대를 신청하여
똑같이 세팅을 하는데 당최 master에 worker가 붙지 않네요...
신규 신청한 서버는 IDC의 같은 스위치에 물려 있으며 ssh 등의 통신은 정상적으로 이뤄지는데 왜 클러스터링이 되지 않는지 알수가 없습니다.
같은 네트웍 상에 있으면 묻지도 따지지도 않고 바로 붙어야 하는게 아닌가 싶은데...
worker node에서 systemctl status k3s-agent 해보면 아래와 같은 에러 메세지가 뜹니다.
Dec 18 14:11:38 ubuntu k3s[4080]: time="2020-12-18T14:11:38.740997340Z" level=info msg="Starting k3s agent v1.18.6+k3s1 (6f56fa1d)"
Dec 18 14:11:38 ubuntu k3s[4080]: time="2020-12-18T14:11:38.741250190Z" level=info msg="module overlay was already loaded"
Dec 18 14:11:38 ubuntu k3s[4080]: time="2020-12-18T14:11:38.741282971Z" level=info msg="module nf_conntrack was already loaded"
Dec 18 14:11:38 ubuntu k3s[4080]: time="2020-12-18T14:11:38.741306851Z" level=info msg="module br_netfilter was already loaded"
Dec 18 14:11:38 ubuntu k3s[4080]: time="2020-12-18T14:11:38.741787670Z" level=info msg="Running load balancer 127.0.0.1:42287 -> [xxx.yyy.xxx.yyy:6443]"
Dec 18 14:11:38 ubuntu k3s[4080]: time="2020-12-18T14:11:38.743225850Z" level=error msg="failed to get CA certs at https://127.0.0.1:42287/cacerts: Get https://127.0.0.1:42287/cacerts: read tcp 127.0.0.1:35382->127.0.0.1:42287: read: connection reset by peer"
Dec 18 14:11:40 ubuntu k3s[4080]: time="2020-12-18T14:11:40.745048831Z" level=error msg="failed to get CA certs at https://127.0.0.1:42287/cacerts: Get https://127.0.0.1:42287/cacerts: read tcp 127.0.0.1:35390->127.0.0.1:42287: read: connection reset by peer"
Dec 18 14:11:42 ubuntu k3s[4080]: time="2020-12-18T14:11:42.746850585Z" level=error msg="failed to get CA certs at https://127.0.0.1:42287/cacerts: Get https://127.0.0.1:42287/cacerts: read tcp 127.0.0.1:35398->127.0.0.1:42287: read: connection reset by peer"|
Dec 18 14:11:44 ubuntu k3s[4080]: time="2020-12-18T14:11:44.748546343Z" level=error msg="failed to get CA certs at https://127.0.0.1:42287/cacerts: Get https://127.0.0.1:42287/cacerts: read tcp 127.0.0.1:35406->127.0.0.1:42287: read: connection reset by peer"
Dec 18 14:11:46 ubuntu k3s[4080]: time="2020-12-18T14:11:46.750159432Z" level=error msg="failed to get CA certs at https://127.0.0.1:42287/cacerts: Get https://127.0.0.1:42287/cacerts: read tcp 127.0.0.1:35414->127.0.0.1:42287: read: connection reset by peer"
load balancer에서 정상적으로 master로 매핑은 이뤄졌는데 CA certs를 가져오지 못합니다.
아 참.. 상호 서버간 모든 포트는 열려있는 상태입니다.
혹시나 해서 master 실행 시에 --tls-san 으로 master의 IP를 추가해 줘봐도 똑같고...
멘붕 삽질중에 있습니다.. 누군가 약간의 팁이라도 주시면 감사하겠습니다.
또한 궁금한 몇가지 사항을 함께 적어봅니다.
1. k8s의 master 노드와 worker 는 서로 다른 네트워크에 위치하게 구성이 가능한가?
예를들면 마스터와 워커가 서로 다른 IDC의 다른 IP 대역에 위치하는거죠.. k8s가 NAT을 통한 네트워크 구성을 싫어한다고 알고있는데...
어찌어찌 하면 불가할 것 같지는 않은데 그렇게 설계된 시스템이 아니라면 굳이 하지는 않겠습니다.
2. master 노드가 죽으면.. worker에 돌아가고있던 아이들도 같이 증발하는가..?
이건 여러 방면으로 검색을 해봐도 명확히 설명된 것을 찾지 못해서 바보같은 질문일수도 있지만..
master에서 모든 리소스를 관리하기에 당연히 마스터가 죽으면 워커들도 죽을 것 같기도 하면서도..
또 워커에서 잘 돌고있는 아이는 그냥 잘 돌아가지 않을까? 알쏭달쏭 하여 이렇게 질문을 남겨봅니다.
ÀÏ´Ü ÇØ´ç ¿¡·¯´Â master nodeÀÇ ÁÖ¼Ò°¡ À߸ø ÁöÁ¤µÇ¾î¼ 127.0.0.1À» Ÿ´Â°Å °°Àº´ë k3s´Â ¾È½áºÁ¼ ¼³Á¤¹ýÀº ¸ð¸£°Ú½À´Ï´Ù.
±Ã±ÝÇÑ »çÇ׿¡ ´ëÇؼ k8s±âÁØÀ¸·Î ¸»¾¸µå¸®¸é
1. Overlay Network¼³Á¤¿¡ µû¶ó ´Ù¸¨´Ï´Ù.
Calico±âÁØÀ¸·Î https://docs.projectcalico.org/networking/determine-best-networking º¸½Ã¸é ȯ°æ¿¡ µû¸¥ ¼³¸íÀÌ ÀÖ½À´Ï´Ù.
2. ¸¶½ºÅÍ°¡ Á×´Â´Ù°í ¸ðµç ¼ºñ½º°¡ Áï½Ã Á×¾î¹ö¸®Áø ¾Ê½À´Ï´Ù.
containerd°¡ »ì¾ÆÀÖ´Â ÇÑ ±âÁ¸¿¡ ½ºÄÉÁ층 µÇ¾ú´ø Æĵå´Â µ¹¾Æ°©´Ï´Ù.
´Ü ´õÀÌ»ó ÆÄµå ½ºÄÉÁ층Àº ¸øÇϱ⠶§¹®¿¡ Á¦ ¿ªÇÒÀ» ÇÏÁö ¸øÇØ ¿À·ù°¡ »ý±â¸é, ½Ã°£ÀÌ Áö³ª¸é Á×À»°Ì´Ï´Ù.
k3s´Â °³ÀÎÀûÀ¸·Î ºñÃߵ帳´Ï´Ù.. Àú´Â k8s¸¦ ¼ö³â°£ ¿î¿µÇØ º¸¾Ò½À´Ï´Ù. ÀÏ´Ü k3s°¡ sqlite db¸¦ ¾²´Â°É·Î º¸¾Æ ¾ÆÁ÷µµ ´ÜÀÏ ¸¶½ºÅÍ ³ëµåÀΰŠ°°Àºµ¥.. k8s¸¦ ¾²¸é¼ ¸¶½ºÅͳëµå°¡ ÃÖ¼Ò 3´ë´Â ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿î¿µÇÏ´Ùº¸¸é ¸¶½ºÅ͸¦ Àá±ñ Á׿©¾ß ÇÏ´Â °æ¿ì°¡ ÀÖÀ» ¼ö Àִµ¥ ±×·± °æ¿ì °ñÄ¡ ¾ÆÆÄÁý´Ï´Ù.
±×¸®°í ½ºÅ丮Áö¿¡ ´ëÇÑ ½Å°æÀ» ¾²¼Å¾ß ÇÕ´Ï´Ù. k8sÀÇ ¸ñÀûÀÌ °í °¡¿ë¼ºÀε¥ ³ëµå¿¡ »ó°ü¾øÀÌ Æĵ带 ½ºÄÉÁ층ÇÏ°í µ¥ÀÌÅ͸¦ À¯ÁöÇÏ·Á¸é(DB µî) rook-ceph°ú °°Àº ½ºÅ丮Áö Ŭ·¯½ºÅ͸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. Âü°í·Î rook-ceph»ç¿ë½Ã ½ºÅ丮Áö(osd)³ëµå´Â ´Ù¸¥ Æĵ尡 ½ºÄÉÁ층 µÇÁö ¾Ê°Ô º°µµÀÇ ³ëµå°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. xfs»ç¿ë½Ã Ä¿³Î ¹ö±×°¡ À־ä.
Âü°í·Î.. ¿¹½Ã·Î DB¸¦ µé±ä ÇßÁö¸¸ ½ÇÁ¦·Î DB´Â pvcÀ§¿¡¼ µ¹¸®Áö ¾Ê°í º°µµÀÇ ³ëµå¿¡¼ hostPath·Î µ¹¸®´Â°É ÃßõÇÕ´Ï´Ù.
¹°·Ð DB¿¡ ´ëÇÑ °í °¡¿ë¼ºÀº ¸Þ´º¾ó·Î °ü¸®ÇÏ¼Å¾ß ÇÕ´Ï´Ù. rook-cephÀ§¿¡¼ DB¸¦ µ¹¸®±â¿£ ³×Æ®¿öÅ© ºÎÇÏ ¹× Àåºñ¼º´ÉÀÌ ¸¹ÀÌ µé¾î¼¿ä.
ÀÏ´Ü master nodeÀÇ ÁÖ¼Ò ¼³Á¤ ¹®Á¦´Â ¾Æ´Ñ°Í °°½À´Ï´Ù.
¶È°°Àº ¼¼Æà ¹æ¹ý°ú ¼³Á¤À¸·Î ·ÎÄà vm¹× ncloud ¿¡¼ Á¤»óÀûÀ¸·Î Ŭ·¯½ºÅÍ ±¸¼ºÀ» Çß¾ú½À´Ï´Ù.
¾à°£ ÀÇ½ÉµÇ´Â°Ç IDC¿¡¼ ¼¹ö ¼¼Æýà ¹º°¡.. ¹ºÁö ¸ð¸¦ ¹º°¡°¡ ÀÖÁö ¾Ê³ª ½Í½À´Ï´Ù;;
k3sÀÇ °æ¿ì agent¿¡¼ master·ÎÀÇ Åë½ÅÀ» ÇÒ ¶§ "Running load balancer 127.0.0.1:42287 -> [xxx.yyy.xxx.yyy:6443] ÀÌ·±½ÄÀ¸·Î localÀÇ Æ¯Á¤ Æ÷Æ®¿Í masterÀÇ 6443Æ÷Æ®¸¦ ¸ÅÇÎÇؼ ¾²´Â °Í °°´õ¶ó±¸¿ä.
Å×½ºÆ® Çß´ø ȯ°æ¿¡¼´Â ¸ðµÎ Àú ¸Þ¼¼Áö°¡ ¶ß¸é¼ Àß ÀÛµ¿À» Çϴµ¥...
¾Ë·ÁÁֽŴë·Î overlay network ¿¡ °üÇؼ Á» °øºÎ Çغ¸°Ú½À´Ï´Ù Å°¿öµå °¨»çÇÕ´Ï´Ù.
À§ÀÇ ´äº¯À» µè°í³ª´Ï ¾à°£ÀÇ °í¹ÎÀÌ µÇ±ä ÇÕ´Ï´Ù¸¸.. k8s¸¦ µµÀÔÇÒ ¼ö ÀÖ´Â »óȲÀº ¾Æ´Ï°í..
docker¸¦ ¸Å´º¾ó·Î ¿î¿µÇϱ⺸´Ü ¿ÀÄɽºÆ®·¹ÀÌ¼Ç ¹ÝÂÊÀ¸·Î¶óµµ »ç¿ë Çغ¸°í½Í¾î¼ ¾Ë¾Æº¸´Ù°¡ °èȹÇÑ ÀÏÀε¥ Á»´õ °í¹ÎÀ» ÇغÁ¾ßÇÒ±î¿ä...?^^;
k3s°¡ etcd¸¦ ÀÌ¿ëÇÏÁö ¾Ê°í sqlite¸¦ default·Î »ç¿ëÇϱä Çϳª µ¥ÀÌÅͽºÅ丮Áö·Î ¿ÜºÎÀÇ mysql, posgresql µîµµ Áö¿øÇϱä ÇÕ´Ï´Ù..
etcdÀÇ ¼º´ÉÀº ¸ø ³»°ÚÁö¸¸¿ä...¤¾¤¾
DB °ü·ÃÇؼµµ ÁÁÀº ÆÁ °¨»çµå¸³´Ï´Ù.
PVC¿Í hostPathÁß ¾î¶² °ÍÀ» È°¿ëÇؾßÇÒÁö ¾à°£ °í¹ÎÁßÀ̾ú´Âµ¥ ¸¶Ä§ ´äº¯À» Áּ̽À´Ï´Ù ¤Ð¤Ð
¾à°£ µ¡ºÙÀÌÀÚ¸é ±»ÀÌ k3s¸¦ µµÀÔÇÏ·Á Çß´ø ÀÌÀ¯°¡.. ±âÁ¸¿¡´Â ¼¹ö ÇÑ´ë¿¡ Apache + Mysql + PHP ¸¦ ¼¼ÆÃÇÏ¿© virtual host·Î ¿©·¯ À¥»çÀÌÆ®¸¦ ¿î¿µÇߴµ¥
½Ã°£ÀÌ Áö³ª´Ùº¸´Ï ¸ðµç À¥»çÀÌÆ®°¡ apache³ª phpÀÇ ¹öÀü ÀÇÁ¸¼ºÀÌ ÀÖ¾î¼ ¾÷µ¥ÀÌÆ®¸¦ ÇÑ¸Õ ÇÏ·ÁÇصµ dependency°¡ ³Ê¹« ¸¹¾Æ¼ °¢ À¥»çÀÌÆ®³ª ¾ÛµîÀ»
º°µµ ȯ°æÀ¸·Î ±ò²ûÇÏ°Ô ±¸¼ºÇغ¸°íÀÚ Çß½À´Ï´Ù.. docker¸¦ È¥¿ëÇؼ »ç¿ëÇÏ°í ÀÖ¾ú´Âµ¥ (apache reverse proxy) ¾Æ¿¹ docker ±â¹ÝÀ¸·Î º¯È¸¦ ÁÖ·Á Çϴ°ÅÁÒ..
Á» ´õ ¿¬±¸ÇغÁ¾ß°Ú½À´Ï´Ù.
°¨»çÇÕ´Ï´Ù!
worker¿¡¼ nc -z MASTER_IP 6443 && echo OK || echo FAIL ¸í·ÉÀ¸·Î ¿¬°á ¿©ºÎ¸¦ È®ÀÎÇØ º¸¼¼¿ä.
6443ÀÌ ¾È¶ß¸é ¸¶½ºÅÍ°¡ ¾È¶á°Å°í... µÎ¹ø°²¨°¡ FAILÀÌ¸é ¹«¾ð°¡°¡ ¸·°í.. °°Àº ½ºÀ§Ä¡¶ó¸é ¹æȺ®¹Û¿£ ¾øÀ»ÅÙµ¥.. ¼³Á¤ ³»¿ëÀ» ¸ð¸£´Ï Àü ¸ð¸£°Ú½À´Ï´Ù..^^
etcd¸¦ ¾²´Â ÀÌÀ¯´Â ¼º´Éº¸´Ù´Â °í-°¡¿ë¼º ¶§¹®ÀÔ´Ï´Ù. etcd´Â ¾Ë¾Æ¼ peer³¢¸® º¹Á¦Çϱ⿡..
°£´ÜÇÏ°Ô ¾²½Å´Ù¸é ¾î¶»°Ô ¾²½Ãµç Å« »ó°ü ¾øÀ»°Å°°½À´Ï´Ù.
¾îÂîµÇ¾ú´ø docker¾²´Ù°¡ k8s¾²¸é.. ½Å¼¼°èÀÔ´Ï´Ù¤¾¤¾
worker¿¡¼ÀÇ ¸í·É¾î´Â FAILÀÌ ¶ß³×¿ä..
Çϵµ ¾ÈµÇ±æ·¡ ¹æȺ® + iptables±îÁö ¸ðµÎ ²ô°í Å×½ºÆ®ÇغÁµµ Á׾ ¿¬°áÀÌ ¾ÈµÇ¿ä...
pingÀ̳ª ssh µîÀº Á¤»óÀûÀ¸·Î ºÙ´Âµ¥.. ÀÌÇØ°¡ ¾È°¡³×¿ä..
Á¦ ¼±¿¡¼´Â È®ÀÎÇÒ ±æÀÌ ¾ø´Â °Í °°½À´Ï´Ù. ¿ù¿äÀÏ¿¡ IDC¿¡ ¿¬¶ôÇغÁ¾ßÁö¿ä..
etcd´Â master³¢¸® ¼·Î º¹Á¦¸¦ Çϴ±º¿ä.. ¸Þ¸ð¸®±â¹ÝÀ̶ó ºü¸´ºü¸´ÇÏ°Ô ¹Ù·Î¹Ù·Î º¹Á¦¸¦ Àß Çϳªº¾´Ï´Ù.
´ÊÀº ½Ã°£Àε¥ ´äº¯ Áּż ³Ê¹« °¨»çµå·Á¿ä!! ÁÁÀº ÁÖ¸» º¸³»½Ê½Ã¿À^^
ÀÏ´Ü ÀÛµ¿ÇÏ´Â ·ÎÄÃVM°ú Ŭ¶ó¿ìµåÀÇ °æ¿ì netstat À» ÇßÀ» ‹š 0.0.0.0:6443À¸·Î Æ÷Æ®°¡ LISTEN ÁßÀε¥...
ÀÛµ¿ÇÏÁö ¾Ê´Â ¹®Á¦ÀÇ ¼¹ö¿¡¼´Â 127.0.0.1:6443À¸·Î¸¸ ¿·ÁÀÖ½À´Ï´Ù.
k3sÀÇ ¼³Ä¡ ¹× ½ÇÇà ½ºÅ©¸³Æ®´Â µ¿ÀÏÇÑ °ÍÀ» »ç¿ëÇÏ¿´´Âµ¥ ÀÌ·¸°Ô ´Ù¸¥ °á°ú°¡ ³ª¿À´Ï Âü ´çȲ½º·´³×¿ä..
------------------ Ãß°¡
±×°Ô ¿øÀÎÀÌ ¾Æ´Ï¾ú³×¿ä...
ncloud¿¡¼´Â 0.0.0.0À¸·Î ¸®½¼À» ÇÏ°íÀִµ¥
·ÎÄà virtualbox vm¿¡¼´Â ¶Ç 127.0.0.1·Î ¸®½¼À» ÇÏ°íÀִµ¥µµ Àß ÀÛµ¿À» ÇÕ´Ï´Ù;;
ȯÀåÇϰڳ׿ä..