요즘 bash로 몇몇 테스트 환경 구축을 위한 script을 만들고 있어 이중 배열형태로 데이터를 저장하고 이를 쉽게 사용하는 방법을 간단히 정리하고자 한다. 테스트 환경을 자주 만들고 지워야하는 입장에서 간단히 지울 resource group을 찾아 지우는 script이다. #!/bin/bash GROUPLIST=$(az group list --query '[].name' -o tsv) num=0; for rg in $(az group list --query '[].name' -o tsv); do num=$(expr $num + 1); echo $num $rg ; declare "rg_$num"=$rg ; done DELRGNUM=0 re='^[0-9]+$' inputnum() { echo -n "##..
Ubuntu에서 사용되는 netplan은 다음과 같은 ring buffer 설정을 고정하는 기능을 제공하지 않는다. ETHTOOL_OPTS="-G ${DEVICE} rx 1024 ; -G {$DEVICE} tx 1024"그러면 ringbuffer size 변경과 같이 재부팅후에도 적용이 되어야하는 설정의 적용은 어떻게 하는지 알아보자. 먼저 github에 보고된 내용이다. https://github.com/systemd/systemd/issues/13601 갑자기 systemd가 나온다. 이유는 netplan은 기본적으로 아래와 같이 상단에서 systemd-networkd (혹은 NetworkManager)에서 실행될수 있는 backend file을 생성하게 된다. https://netplan.io/ 즉..
nftables 현대적인 Linux kernel packet 분류 프레임워크이다. 고전인 xtables( {ip,ip6,arp,eb}_tables ) 환경을 대신하여 새로운 코드가 사용되어진다. 즉, 리눅스 커널에서 새로운 패킷 필터링 / 방화벽 엔진으로 현재 iptables, ip6tables, arptables, ebtables 로 나뉘어서 사용되던 것을 nftables로 교체 및 통합 한다. https://wiki.nftables.org/wiki-nftables/index.php/What_is_nftables%3F nftables 동작을 위한 기반사항 Linux kernel since 3.13 이상 libmnl (minimalistic Netlink library) libnftnl (저수준 netl..
promql로 뽑아내는 결과중 label 값을 변경하는 다음 label_replace, label_join에 대해 예제와 함께 간단한 사용법을 알아보자. label_replace label_replace는 실제 replace가 아닌 add 이다. https://stackoverflow.com/questions/54235797/how-to-rename-label-within-a-metric-in-prometheus 다음과 같은 promql query로 label_replace 사용이 가능하다. label_replace(rate(demo_api_request_duration_seconds_count[5m]), "newstatus", "$1", "status", "(^2.*)")실제 동작은 status lab..
배경 기본적으로 container를 가볍고 안전하게 만들기 위해 container에 불필요한 binary를 제거하고 container image를 생성하고 운영한다. 허나 실제 운영하다보면 pod가 통신이 안되거나 디버깅을 해야하는 경우가 발생되면 관련된 command를 쓸수 없어 디버깅에 어려움이 생기는 경우가 다수있다. 기본적으로 사용하는 명령어를 설치를 해서 쓸수도 있지만 대다수 container들은 도구 설치에 대한 권한을 허용하지 않기에 이또한 어려움이 있다. kubectl debug 앞선 배경상의 문제를 kubectl debug 명령을 사용하여 debugging 가능한 환경을 만들수 있다. https://kubernetes.io/ko/docs/tasks/debug-application-clus..
helm chart를 만들때 page 기능이 필요해 이를 사용하는 방법에 대하여 정리해보고자 한다. 여기서 사용하려는 버전은 self-managed 즉 private 환경에서 사용하는 방법이라 보면된다. Have to know 먼저 알아두어야할 것은 다음 3가지 방식으로 사용이 가능하다는것이다. Pages daemom이 GitLab과 동일 서버에서 동작되며 secondary IP를 사용하여 Pages에 접근이 되는 환경 Pages daemon이 GitLab과 다른 서버에서 동작 Pages daemon이 GitLab과 동일 서버에서 동작되고 IP는 같으나 다른 port로 서비스 된다. (이 환경은 Load Balancer를 이용한 proxy환경이 필요하다.) 참고 : https://docs.gitlab.c..
gitlab에서 사용중인 인증서 문제인지 gitlab에 접근하는 ✗ failed to get Git repository "https://gitlab.jacobbaek.com/dubaek/flux-test": Get "https://gitlab.jacobbaek.com/api/v4/projects/dubaek%2Fflux-test": x509: certificate signed by unknown authorityPC에서 사용중인 루트 인증서 리스트에 사용하려는 인증서의 발급자가 없어서 발생된 이슈이다. jacob@dubaek:/tmp$ echo | openssl s_client -showcerts -connect gitlab.jacobbaek.com:443 CONNECTED(00000003) depth=..
Why Sealed-Secrets is needed Kubernetes 환경에서 대체로 Secret을 제외한 모든 설정정보를 Git으로 관리한다. Secret의 경우 사실 비밀정보이고 노출되면 문제가 되기에 이를 따로 보관하거나 별도의 secret management 서비스를 사용하는등의 고민이 되기 마련이다. SealedSecrets Sealed-Secrets는 앞선 어려움을 보안적으로 취약하지 않은 상태의 암호화된 Secret으로 Git 저장소에 저장되게 해주어 GitOps 환경상에 Secret 보관에 어려움을 해소시켜준다. 테스트 하며 확인한 특징을 정리해보자면, Kubernetes secret의 비밀정보를 암호화할 수 있다. 암호화된 비밀정보가 포함된 상태로 Git 저장소에 저장할수 있다. (이는..
- Total
- Today
- Yesterday
- metallb
- Helm Chart
- kata container
- hashicorp boundary
- minikube
- kubernetes install
- Jenkinsfile
- vmware openstack
- boundary ssh
- socket
- Terraform
- openstacksdk
- DevSecOps
- macvlan
- aquasecurity
- nginx-ingress
- openstack backup
- wsl2
- jenkins
- open policy agent
- kubernetes
- K3S
- mattermost
- crashloopbackoff
- minio
- GateKeeper
- azure policy
- ansible
- ceph
- OpenStack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |