๐ eksctl ๊นํ ๐ eksctl ๊ณต์ ๋ฌธ์ ๐ eksctl config file example eksctl ์ค์น curl --silent --location "(uname -s)_arm64.tar.gz" | tar xz -C /tmp sudo mv /tmp/eksctl /usr/local/bin eksctl version EKS ๊ตฌ์ฑ eks ๋ ์๋ง์กด์ ์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค์ด๋ฉฐ, eksctl ์ eks ๋ฅผ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ ์ปค๋งจ๋ ํด eksctl ๊ณต์ ๋ฌธ์๋ ๊ต์ฅํ ์น์ ํ ํธ์ด๋ผ๊ณ ์๊ฐ ๐ก eksctl ์ EKS ๋ฅผ ์ํ ์ปค๋งจํธ ํด์ด๋ฏ๋ก aws configure ๊ฐ ๋ ์ํ์ฌ์ผ ํจ aws ๋ก๊ทธ์ธ aws configure 1. Using Config Files (๊ฐ์ฅ ๊ธฐ๋ณธ) apiVersi..
์ด ๊ธ์ ๋ด์ฉ์ [์ดํํฐ๋ธ ์ฝํ๋ฆฐ]์ ์ฐธ๊ณ ํฉ๋๋ค. ๋๋ก๋ ๋ฐ์ดํฐ๋ฅผ ํ๊บผ๋ฒ์ ์ ๋ฌํด์ผ ํ ๋๊ฐ ์์ต๋๋ค. ์๋ ์ฝ๋์ฒ๋ผ ๋ง์ด์ฃ . data class Player( val id: Int, val name: String, val points: Int ) val player = Player(0, "Gecko", 9999) data ํ์ ์๋ ์๋์ ํจ์๋ค์ ์๋์ผ๋ก ์์ฑํด์ค๋๋ค. toString equals ์ hashCode copy componentN(component1, component2 ๋ฑ) toString ํด๋์ค์ ์ด๋ฆ๊ณผ ๊ธฐ๋ณธ ์์ฑ์ ํํ๋ก ๋ชจ๋ ํ๋กํผํฐ์ ๊ฐ์ ์ถ๋ ฅ ํด์ค๋๋ค. ์ฃผ๋ก ๋ก๊ทธ ์ถ๋ ฅ์ด๋ ๋๋ฒ๊น ํ ๋ ์ฌ์ฉํฉ๋๋ค. println(player) // Player(id=0, name=Gecko, p..
์ด์ด์ ๊ณ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. ๊ตฌํ ์์ฒด๊ฐ ๋ชฉ์ ์ด๋ฏ๋ก ์์ธํ ์ค๋ช ์ ์๋ตํฉ๋๋ค. JWT ์์ฑํ๊ธฐ JWT์ ๊ถํ ์ถ๊ฐํด์ฃผ๊ธฐ ์์ฑํ JWT์ ๋ํด ์ธ์ฆ/์ธ๊ฐ ํ๊ธฐ JWT ์ฌ๋ฐ๊ธ ํด์ฃผ๊ธฐ (์งํ) ๊ตฌํ AuthController @RestController @RequestMapping("/auth") class AuthController( private val authService: AuthService ) { /** * token ์์ฑํด์ ๋ณด๋ด์ฃผ๊ธฐ */ @GetMapping("/login") fun login(@AuthenticationPrincipal oAuth2User: OAuth2User): ResponseEntity { return ResponseEntity.ok(authService.login(oAu..
์ด์ด์ ๊ณ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. ๊ตฌํ ์์ฒด๊ฐ ๋ชฉ์ ์ด๋ฏ๋ก ์์ธํ ์ค๋ช ์ ์๋ตํฉ๋๋ค. JWT ์์ฑํ๊ธฐ JWT์ ๊ถํ ์ถ๊ฐํด์ฃผ๊ธฐ ์์ฑํ JWT์ ๋ํด ์ธ์ฆ/์ธ๊ฐ ํ๊ธฐ (์งํ) JWT ์ฌ๋ฐ๊ธ ํด์ฃผ๊ธฐ ๊ตฌํ JwtFilter class JwtFilter( private val jwtProvider: JwtProvider ) : OncePerRequestFilter() { override fun doFilterInternal( request: HttpServletRequest, response: HttpServletResponse, filterChain: FilterChain ) { val jwt = jwtProvider.resolveToken(request) if (StringUtils.hasText(jwt) && ..
์ด์ด์ ๊ณ์ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. ๊ตฌํ ์์ฒด๊ฐ ๋ชฉ์ ์ด๋ฏ๋ก ์์ธํ ์ค๋ช ์ ์๋ตํฉ๋๋ค. JWT ์์ฑํ๊ธฐ JWT์ ๊ถํ ์ถ๊ฐํด์ฃผ๊ธฐ (์งํ) ์์ฑํ JWT์ ๋ํด ์ธ์ฆ/์ธ๊ฐ ํ๊ธฐ JWT ์ฌ๋ฐ๊ธ ํด์ฃผ๊ธฐ ๊ตฌํ @Component class JwtProvider( private val memberRepository: MemberRepository ) { companion object { private const val AUTHORITIES_KEY = "auth" private const val BEARER_TYPE = "bearer" private const val ACCESS_TOKEN_EXPIRE_TIME = (1000 * 60 * 30) private const val REFRESH_TOKEN_EXPIRE_TIME..
์ด๋ฒ ๊ธ์์๋ Spring Security + Google Oauth2 + JWT๋ฅผ ๊ตฌํํด๋ณด๊ฒ ์ต๋๋ค. ๊ตฌํ ์์ฒด๊ฐ ๋ชฉ์ ์ด๋ฏ๋ก ์์ธํ ์ค๋ช ์ ์๋ตํฉ๋๋ค. ์งํํ๊ธฐ ์์ Google Oauth2 Client_ID, Client_Secret๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฐ์ผ์๊ธธ ๋ฐ๋๋๋ค :) ์๋์ ๊ฐ์ ์์๋ก ์งํ๋ฉ๋๋ค. JWT ์์ฑํ๊ธฐ (์งํ) JWT์ ๊ถํ ์ถ๊ฐํด์ฃผ๊ธฐ ์์ฑํ JWT์ ๋ํด ์ธ์ฆ/์ธ๊ฐ ํ๊ธฐ JWT ์ฌ๋ฐ๊ธ ํด์ฃผ๊ธฐ ์ด๋ฒ ๊ธ์์๋ JWT ์์ฑํ๋ ๋ถ๋ถ์ ๋ํด ์งํํฉ๋๋ค. ๊ตฌํ build.gradle.kts import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "2.6.8" id("..
์ฌ์ฌ์ฉ์ ์ํ ๊ณผ๋ํ ์ ์ฐ์ฑ ๋ค์ํ ํ์ ์ ๋์ผํ ๋ก์ง์ ์ ์ฉํ๊ธฐ ์ํด ์ฝ๋ ์ฌ์ฌ์ฉ์ ๊ณผ๋ํ๊ฒ ํ๋ ค๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ถ Any๋ก ๋ฐ๋ ๊ฒ์ด ๋ํ์ ์ธ ์์์ ๋๋ค. open class Car class K3 : Car() class Avante : Car() //“์ฐจ์ ๋ํ ์ค๋ช ์” ํจ์ fun getInstruction(car: Array) { println("car = ${car.size}") } ๋ง์ด ๊ทน๋จ์ ์ธ ์์ ์ด๊ธฐ๋ ํฉ๋๋ค.. open class Fruit class Apple : Fruit() fun main() { val k3 = K3("k3", "๊ธฐ์") val avante = Avante("์๋ฐ๋ผ", "ํ๋") val fruits: Array = arrayOf(Apple())..
์ง๋ ํฌ์คํ ์์๋ OCP์ DIP๊ฐ ์๋ฐฐ ๋๋ ๊ฒฝ์ฐ์ ๋ํด์ ์์๋ณด์์ต๋๋ค. ์ด๋ฒ์๋ ์คํ๋ง์ด ์๋ ์์ ์๋ฐ๋ก ํด๊ฒฐํด๋ณด๊ฒ ์ต๋๋ค. ์ ๊น ์ง๋ ๊ธ์ ํด๋์ค ๋ค์ด์ด๊ทธ๋จ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. public class DriverImpl implements Driver{ Car car = new K3(); Engine engine = new Electronic(); @Override public void findOwnCarDetail() { car.findCarName(); car.findCarBrand(); engine.WayToMove(); } } DriverImpl ์ญํ ์ ๊ตฌํ์ฒด๊ฐ ์ง์ new ํค์๋๋ก ์ ์ธ ๋์ด ์์ต๋๋ค. ์ด๋ด ๊ฒฝ์ฐ ์ผํ๋ณด๋ฉด OCP์ DIP๋ฅผ ์ ์งํจ ๊ฒ ๊ฐ์ง๋ง ์ฌ์ค ์๋๋ผ๊ณ ์ง๋ ํฌ์คํ ์์ ..
๋ฐ๋๊ณผ ์ค์ฒ๋ผ ์๋ฐํ๋ฉด ๋ฐ๋ก ๋ ์ค๋ฅด๋ ๊ฒ์ด ์์ต๋๋ค. ๋ฐ๋ก "๊ฐ์ฒด ์งํฅ ์ธ์ด" ๋ผ๋ ๊ฒ์ ๋๋ค. "๊ฐ์ฒด ์งํฅ"์ด๋ ๋ ๊ณ ๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๋ ๊ณ ๋ธ๋ก๋ค์ ์กฐ๋ฆฝํ์ฌ ์ฐ๋ฆฌ๋ ๋ฌด์์ด๋ ๋ง๋ค ์ ์์ต๋๋ค. ๋ ๊ณ ๋ฅผ ์ด์ฉํด์ ๋๋ฌผ์์ ๋ง๋ค์๋ค๊ณ ์๊ฐํด๋ณด๊ฒ ์ต๋๋ค. ๋๋ฌผ์์๋ ๋ ๊ณ ๋ก ๋ง๋ค์ด์ง ์ฌ์๋ ์๊ณ , ํธ๋์ด๋ ์๊ณ , ์ฝ๋ผ๋ฆฌ๋ ์๊ณ , ์ ๊ฐ ์ข์ํ๋ ํ๋ค๋ ์์ต๋๋ค. ํ์ง๋ง ์ฌํ๊ฒ๋ ๋ ์ด์ ํธ๋์ด๊ฐ ์ธ๊ธฐ๊ฐ ์์ด์ ๊ณ ๋ฆด๋ผ ๋ ๊ณ ๋ก ๋ฐ๊พธ๊ณ ์ถ์ต๋๋ค. ์ด๋ด ๊ฒฝ์ฐ ์ฐ๋ฆฌ๋ ์ฝ๊ฒ ๋๋ฌผ์์์ ํธ๋์ด ๋ ๊ณ ๋ฅผ ๋นผ๊ณ ๊ณ ๋ฆด๋ผ ๋ ๊ณ ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ํธ๋์ด, ๊ณ ๋ฆด๋ผ๊ฐ ๊ฐ์ฒด๊ฐ ๋๋ ๊ฒ์ ๋๋ค. ํธ๋์ด๋ฅผ ๋บ ๋ค๊ณ ํด์ ๊ธฐ์กด์ ์๋ ์ฌ์๋ ํ๋ค ๋ ๊ณ ๋ ์ ํ ์ํฅ์ด ์์ต๋๋ค. ๋ง์ฝ ๋ผ์ด๊ฑฐ ๋ ๊ณ ๋ฅผ ๋ง๋ค๊ณ ์ถ๋ค๊ณ , ํธ๋์ด์ ์ฌ์๋ฅผ ๋ง๊ตฌ์ก..
๋์ปค ํ๋ธ์ ์ฌ๋ผ์จ ๊ณต์ MySql ์ปจํ ์ด๋๋ฅผ ์คํํ๋ฉด ์ธ์ ์ด๋์๋ ์์ฃผ ์ฝ๊ฒ ๋์ผํ MySql ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. MySql ์ปจํ ์ด๋๋ 8 ๋ฒ์ ์ผ๋ก ์งํํ์ต๋๋ค. ๊ณต์ ๋์ปค ํ๋ธ์ ๋์์๋ ์ค๋ช ๋๋ก ํ๋ฉด 1๋ถ๋ ์๋์ MySql ํ๊ฒฝ์ ๋๊ตฌ๋ ๋ง๋ค ์ ์์ต๋๋ค. ํ์ง๋ง ๋จ์ํ ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ก ์ปจํ ์ด๋๋ฅผ ๋ง๋ค๋ฉด ์๋๊ณ ๋ณผ๋ฅจ๋ ๋ง์ดํธ ํด์ผํ๊ณ MySql์์์ ์๊ฐ, ์์คํ ํ๊ฒฝ ๋ณ์ ๋ฑ๋ ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค. $ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag ๊ทธ ์ค ์ด๋ฒ ๊ธ์์ sql-mode ๋ผ๋ MySql์์ ์ฌ์ฉ๋๋ ์์คํ ๋ณ์์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. sql-mode๋? MySql์ ์ ์ฅ๋ ๋ฐ..
NFS๋ ๋ฌด์์ธ๊ฐ์? ๊ณต์ ๋ ์๊ฒฉ ํธ์คํธ์ ํ์ผ์ ๋ก์ปฌ์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ๋ฐ๋ ํ์ผ ์์คํ ์ ๋คํธ์ํฌ ํ์ผ ์์คํ (Network File System, NFS)์ด๋ผ๊ณ ํฉ๋๋ค. ์ ํต์ ์ธ ์ ๋์ค ํ๊ฒฝ์์๋ ์ค๋ซ๋์ ๋คํธ์ํฌ์์ ์๋ฃ๋ฅผ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก NFS๋ฅผ ์ฌ์ฉํ์ต๋๋ค. NFS ์๋ฒ๊ฐ ํ์ผ์ ๊ณต์ ํ๋ฉด NFS ํด๋ผ์ด์ธํธ๊ฐ ๊ณต์ ํ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ง์ดํธํด์ ์๊ฒฉ ํธ์คํธ(NFS ์๋ฒ)์ ํ์ผ์ ์ฌ์ฉํฉ๋๋ค. NFS๋ ์์ฝ๊ฒ ํ์ผ์ ๊ณต์ ํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง ๋ณด์์ ์ทจ์ฝํ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. NFS๋ก ๊ณต์ ํ ํ์ผ์๋ ์ผ๋ฐ์ ์ธ ์์ ๊ถ๊ณผ ์ ๊ทผ ๊ถํ์ด ๊ทธ๋๋ก ์ ์ฉ๋ฉ๋๋ค. ์๊ฒฉ ์์คํ ์์ ์ด๋ค ์ฌ์ฉ์๊ฐ ํ์ผ ์์ ์์ ๊ฐ์ UID๋ก ๊ณต์ ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผํด์ ํ์ผ์ ๋ง์๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฃจํธ ๊ถํ์ด ๋ถ์ฌ๋ ..
์ค๋ช ์ ํ์์๊ณ ๊ฒฐ๋ก ๋ง ์๊ณ ์ถ์ ๋ถ๋ค์ ์ํ $ sed "$(grep -n 'image:' nginx.yaml | grep -Eo '^[^:]+')s/nginx:1.0/nginx:2.0/g" nginx.yaml ๋ณธ๋ฌธ์ ๊ธฐ๋ฅ์ด ํ์ํ ์ํฉ ์์ ์ ์ด๋ฏธ์ง๋ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์ปค๋ฐํ ํ ์๋์ผ๋ก k8s cluster์ ๋ฐฐํฌ๋๊ธฐ ๊น์ง์ ๊ณผ์ ์ ํ์ดํ๋ผ์ธ์ผ๋ก ๋์ํํ ์ด๋ฏธ์ง์ ๋๋ค. ๊ฐ๋ฐ์๊ฐ ์ด์ ์ค์ธ ์๋น์ค์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค. ๊ทธ๋ ๊ฒ ๋ ๊ฒฝ์ฐ GitOpsRepo์ ์๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ๋ฒ์ ๋ํ ๋ฐ๊ฟ์ฃผ์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ๊ฒ ๋ ๊ฒฝ์ฐ ์ ํจ์ค์์ GitOps Repo์ push๋ฅผ ํ ๋ ์๋กญ๊ฒ ๋ง๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ๋ฒ์ ์ผ๋ก ์์ ํด์ค์ผ ํฉ๋๋ค. ๊ทธ๋์ผ argoCD์์ git..
๋ง์ฝ kubeadm์ ํตํด master์ node join์ ์๋ํ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด ์ค๋ฅ๊ฐ ๋๋ค๋ฉด ubuntu@node:~$ sudo kubeadm join 192.168.241.92:6443 --token 4rlhh1.4dehcs172qy9enyj --discovery-token-ca-cert-hash sha256:b5347bb4959f63e6100142700db4b7d69ea0d860c332265a1748cef29698f814 [preflight] Running pre-flight checks [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd"..
AWS EKS ๋ GCP GKE๋ฅผ ์ด์ฉํ๋ฉด ์ด๋ ต์ง ์๊ฒ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ ์ ์์ง๋ง ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ฅผ ์ด์ฉํ์ง ์๊ณ ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ์ฟ ๋ฒ๋คํฐ์ค ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ๊ธฐ๋ ์ฌ์ด ์ผ์ ์๋๋๋ค. (์ต์ ์ ํํ ๋ ใ ใ ) ๊ทธ๋์ ์ด๋ฒ ๊ธ์์๋ k8s ๊ณต์ ๋ฌธ์๋ฅผ ๋ณด๊ณ ์จํ๋ ๋ฏธ์ค ํ๊ฒฝ์์ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํด๋ณด๊ฒ ์ต๋๋ค. ํด๋ฌ์คํฐ ๊ตฌ์ถ์ ์ด์ ์ ๋ง์ถฐ์ k8s ์ k8s ๋ด ์ค๋ธ์ ํธ๋ค์ ๋ํ ์ค๋ช ์ ์๋ตํ๊ฒ ์ต๋๋ค. ๋ํ ๋ง์คํฐ ๋ ธ๋์ ์์ปค ๋ ธ๋์์ ์ํํ ํ์๊ฐ ๋ค๋ฅด๋ฏ๋ก ๊ฐ ๋ถ๋ถ๋ง๋ค ํ์ํ๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋์ ์งํ ์์๋ ์ง์ผ์ฃผ์ ์ผ ํฉ๋๋ค. ๋ง์ฝ ์ค์น ํ์๋ค๊ฐ ์๋ชป๋ ๋๋์ด ๋ ๋ค๋ฉด kubeadm reset ๋ช ๋ น์ด๋ฅผ ํตํด ๋ฆฌ์ ํด์ฃผ์๊ณ ๋ค์ ์งํํ์๊ธฐ ๋ฐ๋๋๋ค. ์ฐ์ ๋ฏธ๋ฆฌ ์ค๋น๋์ด์ผ ํ ํ๊ฒฝ์ ์๋์ ๊ฐ์ต๋๋ค...
https://reboot.co.kr/13.html 1.๋ผ์ฐํ ํ ์ด๋ธ์ด๋ ๋ด PC๋ฅผ ๊ฐ์ง๊ณ ํ ์ ์๋ ์ผ์ ๋ค์๊ณผ ๊ฐ๋ค. 1) ์์๋ฆฌ์ ์์ ์๋ ์ฌ๋๊ณผ IPX๋ก ์คํํฌ๋ํํธ๋ฅผ ํ๋ค. 2) ๋ฏธ๊ตญ์ ์๋ ๋ง์ดํฌ๋ก ์ํํธ์ฌ์ ํํ์ด์ง์ ์ ์ํ๋ค reboot.co.kr 1.๋ผ์ฐํ ํ ์ด๋ธ์ด๋ ๋ด PC๋ฅผ ๊ฐ์ง๊ณ ํ ์ ์๋ ์ผ์ ๋ค์๊ณผ ๊ฐ๋ค. 1) ์์๋ฆฌ์ ์์ ์๋ ์ฌ๋๊ณผ IPX๋ก ์คํํฌ๋ํํธ๋ฅผ ํ๋ค. 2) ๋ฏธ๊ตญ์ ์๋ ๋ง์ดํฌ๋ก ์ํํธ์ฌ์ ํํ์ด์ง์ ์ ์ํ๋ค. 3) ๊ธฐํ .. ๊ทธ๋ ๋ค๋ฉด, ์ด๋ป๊ฒํด์ ๋ด PC๋ ์์๋ฆฌ์ ๋ฏธ๊ตญ์ PC๋ฅผ ๊ตฌ๋ถํด์ ์ฐพ์๋๊ฐ๊ฒ ๋๋๊ฒ์ผ๊น ? ์์์๋ PC๋ ๋น์ฐํ ์์ ์์ผ๋๊น ๋ฐ๋ก ์ฐ๊ฒฐ๋๋๊ฒ์ด๋ค๋ผ๊ณ ์๊ฐํ๋ ๋ถ์ PC์ ๋ง์์ ํค์๋ฆฌ์ง ๋ชปํ๊ฒ์ด๋ค. PC๋ ์์ ์ ๋ผ์ฐํ ํ ์ด๋ธ์ ๊ฐ์ง๊ณ ๋ค..
When you type a command on the command line, you’re basically telling the shell to run an executable file with the given name. In Linux, these executable programs like ls , find , file and others, usually live inside several different directories on your system. Any file with executable permissions stored in these directories can be run from any location. The most common directories that hold ex..
How to use SED in a Jenkins Pipeline how to use sed in jenkinsfile devopsian.net Have you ever had a task to update a single line in a file? There few utilities to help with that task, and I find sed superior on the alternatives. sed is a stream editor, with which you can modify files. It’s a great utility in your toolbox. If you’re unfamiliar with it, here’s a [link for a quick intro. I had to ..
ํฐ์บฃ ์ด๋ฏธ์ง๊ฐ ์ค์น๋ ์ปจํ ์ด๋๋ฅผ run์ผ๋ก ์คํํ ๊ฒฝ์ฐ docker run --name tomcat8 -i -t -d -p 8088:8080 tomcat-set1 ํฐ์บฃ์ด ์๋์ผ๋ก ์คํ๋๋ฉด์ ๋ฐ์ํ ์ค๋ฅ๋ก Docker ์ปจํ ์ด๋๊ฐ ์คํ๋์ง ์์๋ค. ์๋ ๋ช ๋ น์ด๋ก ์ปจํ ์ด๋ ์๋ฌ ๋ก๊ทธ๋ฅผ ์ด์ด ๋ณด์๊ณ docker logs -t CONTAINER ID ์์ธ์ ํฐ์บฃ ์คํ์ server.xml์ ์ค์ ํ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์ง ์์์ ์๋ค. server.xml์ ์์ ํด์ผ ํ๋๋ฐ ์ปจํ ์ด๋ ์์ฒด๊ฐ ์คํ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํ๋ค๊ฐ ๊ฒฐ๊ตญ ๊ตฌ๊ธ์ ๊ฒ์ํด๋ณด๋ ์คํ์ค๋ฒํ๋ก์ฐ์ ์ด ๊ธ์ ๋ต๋ณ ์ค ์ ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์๋ค. ํด๊ฒฐ๋ฐฉ๋ฒ ์ปจํ ์ด๋๋ ์ ์ง ์ํ์ ์์ง๋ง ์์ ์๋ ํ์ผ์ ํธ์คํธOS๋ก ๋ณต์ฌํ ์ ์์๋ค. ํ์ผ์ ๋ณต์ฌํด์์ ์์..
docker ์ปจํ ์ด๋ ์๊ฐ๋ฐ๊พธ๊ธฐ -์ปจํ ์ด๋ ์ ์ ํ # dpkg-reconfigure tzdata - ํ๊ตญ ์์ธ ๊ธฐ์ค 6(Asia) -> 68(Seoul) ์ ํ # date๋ก ๋ณ๊ฒฝ๋ ์๊ฐ ํ์ธ ํ docker ์ฌ์์
dig (domain information groper) ๋? dig๋ ๋คํธ์ํฌ ๊ด๋ฆฌ ๋๊ตฌ ์ค ํ๋๋ก DNS (Domain Name System) ๋ฅผ ์ง์ํ ์ ์๋ ๋๊ตฌ์ ๋๋ค. nslookup ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ DNS ๋ฅผ ์ง์ํ ์ ์์ง๋ง, ๋ณด๋ค ๋ ํธํ ์ธํฐํ์ด์ค์ ์ฌ์ฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด์ ๋๋ถ์ด IDN (Internationalized Domain Name) ์ฟผ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค. (nslookup๋ ์ง์) dig ์ค์น ์ต๊ทผ OS๋ค์๋ dig ์ปค๋งจ๋๊ฐ ๊ธฐ๋ณธ์ผ๋ก ์ค์น๋์ด ์์ต๋๋ค. ๋ง์ฝ, dig ์ปค๋งจ๋๊ฐ ์์ ๊ฒฝ์ฐ ์๋์ ๋ฐฉ๋ฒ์ผ๋ก ์ค์นํ๋ฉด ๋ฉ๋๋ค. Mac brew install dig Windows ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก๋, ISC ๋ค์ด๋ก๋ ์ ์ ์ํ์ฌ ๋ค์ด๋ก๋ ํ ์ ์์ต๋๋ค. windows dig ์ค์น ๋..
์ฟ ๋ฒ๋คํฐ์ค API ์์ฒญ ๊ณผ์ ๊ฐ๋จํ๊ฒ API Server์ ์ ๊ทผํ๊ธฐ ๊น์ง ํ๋ก์ธ์ค๋ฅผ ๋ณด๋ฉด, ์ฒซ๋ฒ์งธ, ์์ฒญ์ ๋ณด๋์ ๋ ์ธ์ฆ(Authentication) ๊ณผ์ ์ ๊ฑฐ์น๋ค. "๋๋ k8s cluster์ ๋ฑ๋ก๋ ์ฌ์ฉ์๊ฐ ๋ง๋๊ฑฐ์ง?" ๋๋ฒ์งธ, ์ธ์ฆ ๊ณผ์ ์ ํต๊ณผํ ํ ์ธ๊ฐ(Authorization) ๊ณผ์ ์ ๊ฑฐ์น๋ค. "๋ฑ๋ก๋ ์ฌ์ฉ์๋ ๋ง๊ณ ์ด ์ก์ ์ ํ ์ ์๋ ๊ถํ์ ์๋?" ์ธ๋ฒ์งธ, ์ธ์ฆ๊ณผ ์ธ๊ฐ๋ฅผ ํต๊ณผํ๊ฒ ๋๋ฉด Admission Control์ ๊ฑฐ์น๋ค. "๋๊ฐ ๋ณด๋ธ ์์ฒญ์ ์ ์ ํ์ง ํ์ธํด๋ณผ๊น?" ์ด ๊ณผ์ ์ ๋ฌด์ฌํ ๋ง์น๋ฉด "์์ฒญ ์น์ธ"์ด ๋๋ค. ํ์ง๋ง ๋ง์ฝ ํ ๊ณผ์ ์ด๋ผ๋ ์ ์ ์น ์๋ค๋ฉด "์์ฒญ ๋ฐ๋ ค"๊ฐ ๋๋ค. ๊ทธ๋ผ ๋ณธ๊ฒฉ์ ์ผ๋ก AWS EKS๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ ํด๋ฌ์คํฐ์ ์ต์ด ์์ฑํ IAM ์ฌ์ฉ์๊ฐ ์๋ ์๋กญ๊ฒ ๋ง๋ I..
์ฟ ๋ฒ๋คํฐ์ค Docker Hub-Private Image ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ Private Image๋ฅผ ๊ฐ์ ธ์์ผ ํ ๋ ์ฟ ๋ฒ๋คํฐ์ค์ secret์ ์ด์ฉํ๋ฉด ๋ฉ๋๋ค. ์ด ๊ธ์์๋ Docker Hub์ ๊ธฐ์ค์ผ๋ก ์์ฑ ํฉ๋๋ค. ์ฐ์ Private Image ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ธ ๋งํผ ์๋์ ๊ฐ์ด ์ด๋ฏธ Docker Hub์ ์ด๋ฏธ์ง๊ฐ ๋ฑ๋ก๋์ด ์๋ค๋ ๊ฐ์ ํ์ ์งํ ํฉ๋๋ค. ์ฟ ๋ฒ๋คํฐ์ค ๋งค๋ํ์คํธ ํ์ผ ์์ฑ ์ ๋ ์๋์ ๊ฐ์ด ๊ฐ๋จํ Deployment๋ฅผ ์ค์ ํด์ฃผ๋ ๋งค๋ํ์คํธ ํ์ผ(.yaml)์ ์์ฑ ํ์์ต๋๋ค. Private Image๋ฅผ ๊ฐ์ ธ์์ ์ฌ์ฉํ ๋งค๋ํ์คํธ ํ์ผ์ viํธ์ง๊ธฐ๋ก ์ฌ์ ํ spec.template.spec.ImagePullSecrets.name ํ๋์ ์์์ ๊ฐ์ ์ค์ ํด์ค๋๋ค. ์ด ๊ฐ์ ์ดํ ์์ฑํ secr..
Cert-manager๋? Cert-manager๋ Kubernetes ๋ด๋ถ์์ HTTPS ํต์ ์ ์ํ ์ธ์ฆ์๋ฅผ ์์ฑํ๊ณ , ๋ ์ธ์ฆ์์ ๋ง๋ฃ ๊ธฐ๊ฐ์ด ๋๋ฉด ์๋์ผ๋ก ์ธ์ฆ์๋ฅผ ๊ฐฑ์ ํด์ฃผ๋ ์ญํ ์ ํ๋ Certificate manager controller์ ๋๋ค. ์ฝ๊ฒ ๋งํด Kubernetes ๋ด์์ ์ธ๋ถ์ ์กด์ฌํ๋ Issuers๋ฅผ ํ์ฉํ๊ฑฐ๋ selfsigned Issuer๋ฅผ ์ง์ ์์ฑํด์ ์์ฑํ์ฌ Certificate๋ฅผ ์์ฑํ๊ณ , ์ด๋ ์์ฑ๋ Certificate๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์ธ์ฆ์์ ๋ง๋ฃ ์๊ฐ์ด ๊ฐ๊น์์ง๋ฉด ์ธ์ฆ์๋ฅผ ์๋์ผ๋ก ๊ฐฑ์ ํด์ค๋๋ค. Cert-manager๊ฐ ์ฌ์ฉํ๋ ์ธ๋ถ์ ์กด์ฌํ๋ Issuer๋ ์๋์ ์ด๋ฏธ์ง์ ๊ฐ์๋ฐ, ๋ํ์ ์ธ Issuer๋ก ๋ฌด๋ฃ๋ก ์ฌ์ฉ๋๊ณ ์๋ let's enscrypt๋ฅผ ๋ง์ด ์ฌ์ฉํ..
Import $ mysql -u๊ณ์ -p ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช ํ์ผ์ ์ ์ฅํ ์์น/ํ์ผ๋ช ex) $ mysqldump -uroot -p1234 databasename > dump.sql ํน์ ํ ์ด๋ธ๋ง dumpํ๊ธฐ (์ํฌํธ๋ ์ด์ฐจํผ ๋๊ฐ์ด ํ ์ด๋ธ์ DB์ import ํ๋๊ฑฐ๋๊น ์์ ๋์ผ) $ mysqldump -u ๊ณ์ -p ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช ํ ์ด๋ธ๋ช > ํ์ผ์ ์ ์ฅํ ์์น/ํ์ผ๋ช ex) $ mysqldump -uroot -p1234 databasename tablename > dump.sql ํน์ ์กฐ๊ฑด์ ๋ถํฉ๋๋ rows๋ง dumpํ..
1. MySQL์ ๊ธฐ๋ณธํ ์ด๋ธ MySQL์ ์ฒ์ ์ค์น์์ 'mysql'์ด๋ผ๋ ๋ฐ์ดํ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๋ค. ์ด ๋ฐ์ดํ๋ฒ ์ด์ค๋ db,host,user, tables_priv,columns_priv, function๋ผ๋ ๊ธฐ๋ณธํ ์ด๋ธ์ ๊ฐ์ง๊ณ ์๋ค. ์ด ํ ์ด๋ธ๋ค์ MySQL์ ๊ถํ๊ณผ ๊ด๋ จ์ด ์๋ค. 2. MySQL์ ๊ธฐ๋ณธํ ์ด๋ธ๊ณผ ๊ถํ (1) userํ ์ด๋ธ : ์ ์ฒด์๋ฒ์ ์ ์ฉ๋๋ ๊ถํ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์๋ค. (2) hostํ ์ด๋ธ : ํธ์คํธ์ ์ฒด์ ๋ํ ์๋ฒ์ ์ ๊ทผ๊ถํ์ ๋ถ์ฌํ๋ค. (3) dbํ ์ด๋ธ : ๊ฐ๊ฐ์ ๋ฐ์ดํ๋ฒ ์ด์ค์ ์ ๊ทผ ๊ถํ์ ์ค์ ํ๋ค. (4) tables_priv : ํ ์ด๋ธ์ ๋ํ ์ ๊ทผ๊ถํ์ ์ค์ ํ๋ค. (5) columns_priv : ํ์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ค์ ํ๋ค. (6) function : ์ฌ์ฉ์์ ์ mysql..
This text is written by Nadee Poornima To achieve the high availability and scaling of MySQL they have introduced two types of MySQL clusters as MySQL InnoDB Cluster(using InnoDB as the engine) and MySQL NDB Cluster (using NDB engine). Currently, WSO2 products are supporting for this NDB Cluster, and today I am going to explain how to set up an NDB Cluster by using a Docker image of NDB Cluster...
Docker ์ปจํ ์ด๋(container)์ ์ฐ์ฌ์ง ๋ฐ์ดํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ปจํ ์ด๋๊ฐ ์ญ์ ๋ ๋ ํจ๊ป ์ฌ๋ผ์ง๊ฒ ๋ฉ๋๋ค. Docker์์ ๋์๊ฐ๋ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ปจํ ์ด๋์ ์๋ช ์ฃผ๊ธฐ์ ๊ด๊ณ์์ด ๋ฐ์ดํฐ๋ฅผ ์์์ ์ผ๋ก ์ ์ฅ์ ํด์ผํ๋๋ฐ์. ๋ฟ๋ง ์๋๋ผ ๋ง์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ฐ์ Docker ์ปจํ ์ด๋๊ฐ ํ๋์ ์ ์ฅ ๊ณต๊ฐ์ ๊ณต์ ํด์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์จ์ผํฉ๋๋ค. ์ด๋ ๊ฒ Docker ์ปจํ ์ด๋์ ์๋ช ์ฃผ๊ธฐ์ ๊ด๊ณ์์ด ๋ฐ์ดํฐ๋ฅผ ์์์ ์ผ๋ก ์ ์ฅํ ์ ์๋๋ก Docker๋ ๋๊ฐ์ง ์ต์ ์ ์ ๊ณตํ๋๋ฐ์. ์ฒซ๋ฒ์งธ๋ Docker ๋ณผ๋ฅจ(volume), ๋๋ฒ์งธ๋ ๋ฐ์ธ๋ ๋ง์ดํธ(bind mount)์ ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ Docker ์ปจํ ์ด๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ๋๋ ์ด ๋๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ณผ๋ฅจ ์์ฑ ๋ฐ ์กฐํ ..
sed ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๋ " / " ๊ฐ ๊ธฐ๋ณธ ๊ตฌ๋ถ์์ด์ง๋ง "/home" ์ "/home2" ๋ก ์นํ์ ํ ๋ ๋์ผํ ํน์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ์๊ธฐ๋ ํ์์ด์๋ค. ๊ตฌ๊ธ๋ง์ ํ๋ sed ๋ช ๋ น์ด์ ๋ชจ๋ ๊ตฌ๋ถ์๋ ๋ชจ๋ ๊ธฐํธ๊ฐ ๊ตฌ๋ถ์๊ฐ ๋ ์ ์๋ค๊ณ ํ๋ค. ๋ฆฌ๋ ์ค ์ ์คํฌ๋ฆฝํธ ๋ฑ์์ sed๋ฅผ ์ฌ์ฉํ ๋ "sed: -e expression #1, char 12: unknown option to `s`" ์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก sed -i "s/string/number/gi" ์ ๊ฐ์ด ์ฌ์ฉ๋ ํ ๋ฐ, /๋ฅผ |๋ก ๋ณ๊ฒฝ์์ผ ์ฃผ๊ฑฐ๋ ๋ฌธ์์ด ์์ /๊ฐ ์๋ค๋ฉด \/ ๋ก ์ฌ์ฉํ์ฌ ์ด์ค์ผ์ดํ ์์ผ์ฃผ์ด์ผ ํฉ๋๋ค. ex1) sed -i "s/string/number/gi" --> sed -i "s|string|nu..
s3 ๋ฒํท ์ ์ฑ ์ด๋? aws s3์ ๋ฒํท์ ๋ง๋ค๊ณ ํ๋์ ์ด๋ฏธ์ง ํ์ผ์ ์ ๋ก๋ ํ ํด๋น ์ด๋ฏธ์ง์ ์ฃผ์๋ฅผ ํธ์ถํด ๋ณด๋ฉด ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด Access Denied์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ฉด์ ์์ธ์ค ๋์ง ์๋๋ค. ์ด๋ฐ ํ์์ ํด๊ฒฐํ๊ธฐ ์ํด ์์ฑํ s3๋ฒํท์ ๋ฒํท ์ ์ฑ ์ด๋ผ๋ ๊ฒ์ ์์ฑํด์ผ ํฉ๋๋ค. s3 ๋ฒํท ์ ์ฑ ์ด๋ ์ฌ์ฉ์๊ฐ s3 ๋ฒํท์ ์์ธ์ค ํ ์ ์๋ ์ ์ฑ ์ต์ ์ค ํ๋ ์ด๋ฉฐ json ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ฒํท์ ๋ํ ์์ธ์ค๋ฅผ ์ ์ด ํฉ๋๋ค. s3๊ฐ ๋ฌด์์ธ์ง? ๋ฒํท์ด ๋ฌด์์ธ์ง?์ ๋ํ ๊ถ๊ธ์ฆ์ ๋ค์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์๊ธธ ๋ฐ๋๋๋ค. Amazon S3์ด๋ ๋ฌด์์ธ๊ฐ์? - Amazon Simple Storage Service HTTP๋ฅผ ํตํ SOAP ์ง์์ ์ค๋จ๋์์ง๋ง HTTPS๋ฅผ ํตํด ๊ณ์ํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ก์ด Am..