[Gitlab] docker 구축하기
2022. 8. 3. 16:58
엔지니어링/Gitlab
형상관리를 위한 git은 선택이 아닌 필수이다. 초 간단 Docker gitlab 설치를 적어둔다. 먼저 적당한 위치에 마운트할 폴더를 생성해준다. 필자는 C:\gitlab 폴더를 만들어 주었다. powershell 기준(줄바꿈 `) docker run --detach ` --name gitlab ` --hostname gitlab.example.com ` --publish 4000:80 ` --restart always ` --volume C:\gitlab\config:/etc/gitlab ` --volume C:\gitlab\logs:/var/log/gitlab ` --volume C:\gitlab\data:/var/opt/gitlab ` gitlab/gitlab-ce gitlab이 모두 구동될 때까..
[OCP] 이미지레지스트리 default route 생성
2022. 8. 3. 16:50
엔지니어링/OCP
ocp 구축후 이미지 레지스트리에 접근하려고 할때 default Route 설정을 해주면 된다. 근데 맨날 까먹음^_^ 적어둬야지 oc patch config.imageregistry.operator.openshift.io/cluster --patch='{"spec":{"defaultRoute":true}}' --type=merge
[OCP] 일반유저 프로젝트 생성 권한 막기
2022. 8. 3. 16:44
엔지니어링/OCP
ocp 에서 사용자계정을 생성하고 로그인하면 자체 프로젝트 생성 권한이 있는데 일반적으로 사용자에겐 특정한 프로젝트만 엑세스 할 수 있는 권한을 부여하는게 좋다. 방법은 self-provisioners 를 지우거나 null로 바꾸는 거다 먼저 확인해보자! $ oc describe clusterrolebinding.rbac self-provisioners Name: self-provisioners Labels: Annotations: rbac.authorization.kubernetes.io/autoupdate: true Role: Kind: ClusterRole Name: self-provisioner Subjects: Kind Name Namespace ---- ---- --------- Group s..
[vsCode] 정규식으로 문자찾기
2022. 8. 3. 16:29
엔지니어링/기타
vsCode는 굉장히 편하고 좋다. nodejs, react 할 때 주로 썼는데, 타 엔지니어분보니 메모장으로도 쓰더라 ㅋㅋㅋ 물론 yaml 파일 수정이나 확인할 때도 많이 쓰고! 필자는 이번에 어플리케이션 이관 작업을 하는데 모든 파일에서 IP 를 찾으려고 했다. 그래서 vscode 는 어떻게 정규표현식을 쓰나 했더니 그냥 버튼 눌러주면 끝이다. 그리고 적당히 IP 패턴 정규표현식을 적어주면 [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 쫘라락 나온다! 끝!
[ALB] Azure Load Balancer 로 라우팅하기
2022. 8. 3. 16:11
엔지니어링/Azure
지난 포스팅까지 인터넷망에서 오는 접근을 proxy 서버에서 라우팅 하는 것을 했다. 이번에는 인터넷망과 프록시 사이에 로드밸런서를 넣어 한번 더 라우팅 규칙을 정의할 것이다. 이로써 보안이 점점 향상되어 가고있다..! Azure Loadbalancer 만들기 만들기는 매우 쉽다 ^^ name : k8s-lb Frent-end ip : 20.41.122.33 Backend-pool : rancher VM (Network interface) proxy 서버의 public ip가 20.41.122.32 여서 그냥 33으로 줬음, 근데 이거어디다씀? 다른 front-ip 가 생겻던데.. 프록시 서버 역할을 하던 rancher vm을 백엔드로 정해줌 Rule 추가 로드밸런서로 접근할 NAT Rule를 정의함 -..
[Nginx] 쿠버네티스 망분리 proxy 서버 구축
2022. 8. 3. 15:59
엔지니어링/프록시
지난 포스팅에 쿠버네티스 ingress 를 올려서 내부 nginx service에 접근하는 것을 했다. 아키텍처 필자가 생각하고 있는 것은 위 아키텍처와 같다.(다음포스팅은 로드밸런서 등록) 쿠버네티스 노드는 private network ip 만을 가지고 프라이빗 통신을 하고, proxy server 는 외부망에서 들어온 요청을 private network 망에 있는 쿠버네티스에 전달한다. 편의상(귀찮아서) proxy server 가 될 곳에는 NFS서버, Rancher 도 있다.ㅋㅋㅋ Public IP 제거 먼저 kube vm 에 있는 public ip를 모두 제거했다. 위 사진처럼 쿠버네티스 vm 들은 public ip 가 모두 제거된 상태! nginx 설치 $ apt-get install nginx..
[Kubernetes] 외부접근 ingress 적용
2022. 8. 3. 12:56
엔지니어링/Kubernetes
지난 포스팅에 이어 rancher로 구성한 쿠버네티스에 외부접근을 위한 ingress를 추가하는 작업을 해야한다 nginx pod는 namespace : auth, deployment : nginx, service : nginx 이러한 naming으로 올려두었다 이제 아래 ingress.yaml 을 작성하고 내용은 / 로 접근한 모든 트래픽을 nginx service 80 port 로 라우팅하라는 내용. apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-ingress namespace: auth annotations: kubernetes.io/ingress.class: nginx #ingress.kubernetes.io/rewrit..
[NFS] 서버 구성하기
2022. 8. 3. 12:26
엔지니어링/기타
지난 포스팅에 rancher 로 kubernetes를 구성하였는데, NFS 서버를 구성하여 node들이 pv를 사용할 수 있도록 구성할 생각이다. NFS 서버 패키지 설치 apt-get install nfs-common nfs-kernel-server rpcbind portmap 공유 폴더 생성 mkdir /NFS chmod -R 777 /NFS 설정 수정 $ vi /etc/exports /NFS 10.2.0.0/16(rw,sync,no_subtree_check) NFS 설정 수정 exportfs -a systemctl restart nfs-kernel-server NFS 클라이언트 패키지 설치 apt-get install nfs-common 마운트 폴더 생성 vm1 은 app1, vm2 는 app2 형..
[Rancher] 쿠버네티스 쉽게 구성하기
2022. 8. 3. 11:52
엔지니어링/Kubernetes
쿠버네티스 환경 구축을 위해 rancher 를 사용해 보았다. 앞 포스팅에서 생성했던 azure gallery 이미지를 활용하여 Azure에 rancher용 1대, kube용 3대를 생성할 것이다. VM 정보 용도 VM이름 base Image 정보 username password ZONE RANCHER rancher ubuntu Server 20.04 LTS - Gen2 rancher ************* 1 VM1 kube-vm1 ubuntu Server 20.04 LTS - Gen2 master ************* 1 VM2 kube-vm2 ubuntu Server 20.04 LTS - Gen2 master ************* 2 VM3 kube-vm3 ubuntu Server 20.0..
[Azure] Gallery VM 복제하기
2022. 8. 3. 11:28
엔지니어링/Azure
azure gallery 기능을 사용하여 VM을 복제할 수 있다 VM 세팅 리소스그룹생성 Resource Group Name : Z-KR-JOON-RG 가상머신 배포 적당히 우분투 20 으로 생성 기본 세팅 도커 설치 가이드를 따라 함(https://shanepark.tistory.com/237) sudo apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release VM Image 저장하여 VM 복제하기 애저 갤러리 애저 갤러리 기능을 통해 초기 설정된 VM 이미지를 저장하여 복제한다. Azure Compute gallery : ubuntu_docker VM image definition : ubuntu_do..
[AKS] AzureFile을 스토리지 클래스로 사용할 때 권한문제
2022. 8. 2. 13:58
엔지니어링/Kubernetes
쿠버네티스에서 pv 마운트를 하고 있는데 문제가 생겼다. 상황은.. jenkins 컨테이너에 pv를 붙여 올리고 있는데 pv mount를 한 jenkins_home 이 root 소유자로 되어 퍼미션 에러가 떨어지는 것이였다. 일단 제일먼저 컨테이너에 들어가 id 를 쳐서 uid, gid를 체크하고, Deployment에 securityContext 를 설정해 주었다. 근데 여전히 변하지 않았다.. 무슨일인고.. azureFile에 대한 구글링을 해보니.. 이런 내용이 있더라... 애저파일을 스토리지 클래스로 사용한다면 gid 가 기본적으로 0 이라고.. 그래서 그냥 스토리지 클래스 마운트 옵션에 1000을 줘버렸다 ^^. kind: StorageClass apiVersion: storage.k8s.io/..
[Blog] 티스토리 스킨 적용기
2022. 8. 1. 18:09
블로그
티스토리를 시작하고 스킨을 찾고 있었는데, hELLO 라는 스킨을 찾아 적용하였다. 참고로 이 스킨은 npm 명령어를 사용하기 때문에 node.js 가 깔려있어야함. 스킨 다운로드 git clone https://github.com/pronist/hELLO 스킨 배포 npm install npm run production npm run deploy deploy가 끝나면 dist 폴더안에 이렇게 생겨있다. 이제 이걸 티스토리 블로그 스킨에 업로드하면 끝! 스킨등록 블로그관리 > 꾸미기 > 스킨변경 > 스킨등록+ 쭉 드래그해서 넣었는데 images랑 몇개가 빠져있다...? 일단 저장! 하고 내 블로그를 들어가보면.. 무한로딩 무한로딩이 기다리고 있다.! ㅋㅋㅋㅋㅋㅋ 해결 찾아보니.. 아까 업로드 되지 않았던..
[Blog] 코드블럭을 더 많은 포맷으로 설정하는 법
2022. 8. 1. 17:57
블로그
tistory 게시글을 작성 중 codeblock 포맷에 없는게 있어 검색하다 적어둔다. 예를 들어 yaml 포맷의 코드블럭을 작성하였는데, 이 포맷이 없다.. apiVersion: v1 kind: PersistentVolumeClaim metadata: name: jenkins-pvc spec: accessModes: - ReadWriteOnce storageClassName: joon-azurefile resources: requests: storage: 5Gi 그럼 기본모드>HTML모드 로 변경 후에 코드 블럭을 찾아 data-ke-language="highlight.js" 로 바꾸고 밑에 표를 참고해 class를 기입해주면 끝. Language Aliases Package 1C 1c 4D 4d h..
[AKS] POD 볼륨 마운트
2022. 8. 1. 17:48
엔지니어링/Kubernetes
오늘은 간단히 nginx pod 에 볼륨을 장착하는 테스트를 할 것이다. 이전에 포스팅한 동적 스토리지클래스를 통해 자동으로 PV 프로비저닝이 되있는 상태이며, 테스트 환경은 AKS에 AzureFile 로 스토리지를 붙여놓았다. pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc001 spec: accessModes: - ReadWriteMany storageClassName: joon-azurefile resources: requests: storage: 1Gi nginx deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replic..
[AKS] 동적 스토리지 할당하기
2022. 8. 1. 17:34
엔지니어링/Kubernetes
Azure에서 AzureFile 스토리지클래스를 통해 PV를 자동으로 프로비저닝 할 수 있다. Storage Class Yaml 작성하기 kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: joon-azurefile provisioner: file.csi.azure.com # replace with "kubernetes.io/azure-file" if aks version is less than 1.21 allowVolumeExpansion: true mountOptions: - dir_mode=0777 - file_mode=0777 - uid=0 - gid=0 - mfsymlinks - cache=strict - actimeo=30 par..