-
ingress nginx ssl
kubernetes ingress nginx with ssl (let’s encrypt) ingress nginx에 ssl을 추가해보자. 먼저 master에서 ssl을 만들어야한다. let’s encrypt를 이용하여 ssl을 만들자. let’s encrypt # domain 셋업 UR_DOMAIN=aaa.com UR-EMAIL=support@aaa.com sudo yum update sudo yum install epel-release git -y sudo yum install python-pip -y sudo yum install python-virtualenv -y sudo pip install requests urllib3 pyOpenSSL --force --upgrade sudo yum install certbot certbot certonly \ --manual \ --preferred-challenges=dns \ --email ${UR-EMAIL} \ --server https://acme-v02.api.letsencrypt.org/directory \ --agree-tos \ --debug \...
-
ansible tip
ansible tip git push when git status changed --- - hosts: dev gather_facts: no tasks: - name: git all --all shell: cd /data/tftpboot/ && git add --all - name: check git status shell: cd /data/tftpboot/ && git status register: result - debug: var=result - debug: var=result.stdout.find('working directory clean') - name: switch backup git push shell: cd /data/tftpboot/ && git commit -am "switch config changed" && git push when: result.stdout.find('working directory clean') != "-1" shell을 실행하여...
-
mssql backup
mssql backup 장애 해결하다 사이먼님이 알려주셔서 정리 https://ola.hallengren.com/ 위 사이트에서 코드를 다운받아서 디비에서 실행해두고 백업을 하면 된다. 사이트에 실행 샘플 코드가 있으니 그걸로 하면 되겠다.
-
Clean Architecture
Clean Architecture 다음 두 강좌면 대충 끝나는듯. uncle bob martin https://www.youtube.com/watch?v=o_TH-Y78tt4&t=1113s http://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html 정리 The Web is a Delivery Mechanism Database is Detail A good architecture allows major decisions to be deferred Clean Architecture with ASP.NET Core 2.1 https://www.youtube.com/watch?v=_lwCVE_XgqI&t=496s old version https://www.youtube.com/watch?v=fAJrVf8f6M4 정리 Domain Layer Entities Value Objects Enumerations (꼭 생성자에서 초기화를 하자) Logic Exceptions Application Layer Interfaces Models Logic Commands / Queries Validators Exceptions Persistence Layer DbContext Migrations Configurations Seeding Abstractions Infrastructure Layer Implementations, e.g....
-
devops list
devops 관련 리스트 하나씩 나눠져 있는것들을 흐름이 있게 정리해보았습니다. 구조 docker docker-01 https://teamsmiley.github.io/2018/06/27/docker-tip-01/ docker-02 - https://teamsmiley.github.io/2018/06/27/docker-tip-02/ docker private registry - https://teamsmiley.github.io/2018/12/22/docker-private-registry/ gitlab gitlab install - https://teamsmiley.github.io/2018/09/06/docker-gitlab/ gitlab build docker image - https://teamsmiley.github.io/2018/12/24/gitlab-ci/ kubernets kubernetes 기본 - https://teamsmiley.github.io/2018/12/19/kubernetes/ kubernetes ingress - https://teamsmiley.github.io/2019/01/27/kubernetes-ingress/ spinnaker spinnaker 설치전 준비 - https://teamsmiley.github.io/2019/01/28/minio/ spinnaker 설치 - https://teamsmiley.github.io/2019/01/29/kubernetes-spinnaker-install/ spinnaker 사용 - https://teamsmiley.github.io/2019/01/30/kubernetes-spinnaker-use/ spinnaker 사용시 에러 - https://teamsmiley.github.io/2019/01/31/kubernetes-registry/
-
kubernetes private registry(ImagePullError)
kubernetes 에서 private registry 사용 (ImagePullError) container image url 잘못된 경우 이미지를 가져올수 없다. 비밀번호를 설정해줘야할수 있다. 노드에 접속해서 docker-login을 하고 터미널에서 docker pull을 하면 이미지를 가져온다. 그런데 스피네커를 통해서 디플로이만 하면 ImagePullError 에러 발생 이런 경우는 private registry를 사용시 네임 스페이스마다 secret을 생성해줘야한다. kubectl create secret docker-registry <secret-name> \ --docker-server=<your-registry-server> \ --docker-username=<your-name> \ --docker-password=<your-pword> \ --docker-email=<your-email> \ --namespace=<namespace-name> 이렇게 하면 스피네커가 배포하고 나면 쿠베가 레지스트리에서 잘 가져온다. 쿠버네티스 yml은 다음처럼 imagepullsecret 추가되야함. apiVersion: apps/v1...
-
spinnaker 사용
Spinnaker 사용 blue green 배포 적용 https://www.spinnaker.io/guides/user/kubernetes-v2/traffic-management/#sample-bluegreen-pipeline 여기를 잘 참고하면 된다. 영어가 불편하신분을 위해 설명을 하면 application을 만들자. load balancer를 만들자. (service) pipeline을 추가한다. 아직 ingress가 스피네커를 통해서 생성이 안되는듯 보여 수동으로 생성했다. (방법 아시는분은 댓글좀..) 해보자. spinnaker ui에 접속하자. 앞 문서를 참고하여 http://spin.publishapi.com으로 접속 Add Application Add Service (load balancer) kind: Service apiVersion: v1 metadata: name: auth namespace: prod spec: selector: app: auth ports: - protocol: TCP port: 80 파이프 라인을 추가하자. add triger...
-
spinnaker 설치
Spinnaker 설치 Install Halyard Halyard manages the lifecycle of your Spinnaker deployment, including writing & validating your deployment’s configuration, deploying each of Spinnaker’s microservices, and updating the deployment. 로컬에 설치할수 있고 도커이미지를 사용할수 있다. 도커를 사용한다. mkdir ~/.hal mkdir /data/git/docker/halyard/kube vi /data/git/docker/halyard/docker-compose.yml --- version: "3.3" services: halyard: container_name: halyard restart: always image: gcr.io/spinnaker-marketplace/halyard:stable volumes: - ./kube:/home/spinnaker/.kube ports: - 8084:8084 - 9000:9000 cd /data/git/docker/halyard && docker-compose up -d docker exec -it halyard bash # 탭 완성...
-
kubernetes - minio
minio storage spinnaker 에서 필요한 데이터를 저장하는 저장소 역할을 합니다. mkdir -p /data/minio # minio file 저장 위치 mkdir -p /data/minio-config # minio 설정 저장위치 install cd wget https://dl.minio.io/server/minio/release/linux-amd64/minio chmod +x minio mv minio /usr/local/bin/minio minio server --address ":9001" --config-dir /data/minio-config /data/minio 설치 완료 시작프로그램에 등록하고 데몬으로 실행한다. cat <<EOT >> /etc/default/minio # Volume to be used for Minio server. MINIO_VOLUMES="/data/minio/" # Use if you want to run Minio on a custom port. MINIO_OPTS="--address :9001"...
-
kubernetes ingress nginx
ingress-nginx 하나의 아이피에 각각의 도메인마다 각자의 서비스로 보내주고 싶다. 구성은 다음 그림과 같다. 기본 pod and service 생성 vi hello-node.yml --- apiVersion: v1 kind: Pod metadata: name: hello-node labels: service-name: hello-node spec: containers: - name: hello-node image: asbubam/hello-node --- apiVersion: v1 kind: Service metadata: name: hello-node spec: ports: - port: 8080 targetPort: 8080 selector: service-name: hello-node kubectl create -f hello-node.yml 잘됬는지 체크 kubectl get pods kubectl get svc 현재까지 구성은 다음과 같다. ingress 설치 kubectl...