Kubernetes 특정 node 들에 pod scheduling이 실패하는 현상이 발생되었다. 실제 pod의 event를 확인해보았을때 아래와 같이 taint 된 상태를 확인할 수 있었다. [root@service001 ~]# kubectl describe po/es-master-0 -n elastic-system ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 6m15s default-scheduler 0/3 nodes are available: 1 node(s) had volume node affinity conflict, 2 node(s) had taint {node.kube..
Containerd를 사용하는 K3s 환경에서 dockerhub가 아닌 registry 추가를 해야할 경우가 있다. 이러한 경우 다음과 같은 설정을 통해 추가가 가능하다. 참고 /var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl 로 configm.toml 적용도 가능한데 실제 crictl info에서는 적용된 registry를 확인할수 없어 해당 기능은 사용을 권장하지 않는다. registy 설정 추가 K3s에서는 registry 추가를 다음과 같이 할수 있다. root@k3s-server:~# cat /etc/rancher/k3s/registries.yaml mirrors: "10.10.10.5:5000": endpoint: - "http://10...
Windows 환경에서 가급적 docker-desktop의 docker 사용을 권장하지만 간혹 docker-desktop을 설치하여 사용이 어려운 경우 다음과 같은 방법을 사용하여 연결이 가능하다. 다만 해당 방법은 VM혹은 원격에서 접근 가능한 서버에 docker engine이 동작한다는 가정이 존재한다. remote docker engine 작업 docker engine이 동작될 서버에서 다음과 같은 설정을 추가한다. [root@rocky8-server ~]# cat /etc/docker/daemon.json { "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"] }이후 아래와 같이 "-H fd://" 옵션을 execstart에서 제거한다...
Argo CD Notification 은 Argo CD Notifications는 지속적인 Argo CD applications들을 모니터하고 Application 상태의 중요변경사항을 사용자에게 알리는 유연한 방법을 제공한다. 출처 : https://argocd-notifications.readthedocs.io/en/stable/ 참고 아마 Argo CD 를 사용해본 사람이라면 대략 Application이 무엇인지는 알거라 판단된다. 그래도 간단히 알아보면, 다음과 특징이 있고 이를 기반으로 Argo CD의 sync 되어지는 Application을 관리한다. Application Custom Resource Definition(applications.argoproj.io) 이다. Argo CD에 의해..
ArgoCD에서 sync 되는 application은 CRD로 만들어지게 된다. 이말은 manifest로 관리가 가능하다는 뜻이다. manifest 자체를 git 저장소에 저장하는 방식을 하기전 ArgoCD 의 argocd-util을 사용한 cronjob으로 manifest를 먼저 만들어내는 backup 방식에 대하여 알아보자. Prerequites 간단하게 구현하기 위해 local storage를 이용하는 방식으로 만들어진 manifest를 host에 바로 저장하는 방식을 사용한다. local storage class 다음 링크에 local storage class 에 대해 설명이 나와있다. https://kubernetes.io/ko/docs/concepts/storage/storage-classes..
Kubernetes 는 내부에 coredns를 통해 별도의 DNS서버를 구성하게 되어 있다. 그러다보니 외부에 등록되지 않은 별도의 도메인을 사용하기 위해서는 추가적인 작업이 필요하다. 하여 이를 어떤식으로 설정할수 있는지 알아보도록 하자. Kubernetes DNS의 기본구성 먼저 간단히 구성을 확인해보면 다음과 같은 coredns와 nodelocadns를 다수 확인할수 있다. [root@localhost ~]# kubectl get pod -n kube-system | grep dns coredns-7677f9bb54-5p6xl 1/1 Running 1 4d coredns-7677f9bb54-p9j47 1/1 Running 2 30d dns-autoscaler-5b7b5c9b6f-czlcl 1/1 R..
기존에 helm chart를 통해 Application 배포를 수행했었다. helm을 사용하면서 아쉬웠던 부분은 helm value로 지정되어 있지 않거나 특정 resource를 추가하기 위해서는 helm chart 자체의 개선이 필요했다. 이로 인해 시간이 좀더 소요되었었고 이슈가 있을 경우 helm chart의 구조를 모르는 경우는 분석에 또 시간이 소요되었다. 이러한 이슈를 다르게 접근한 Kustomize라는 도구를 알게 되었고 이 단점들을 어느정도 보완해줄수 있는 도구라는 생각이 들었다. Kustomize 란 Kustomize는 사실 2017년부터 만들어졌고 소개되어왔다. 현재는 kubectl에 1.14부터 포함되어 사용이 가능하다. Kustomize는 선언적(declarative)를 지향한다. ..
initcontainer를 사용하여 특정 volume에 데이터를 수정해야 하는 상황이 있고 이때 다수의 command line을 입력해주어야 하는 경우가 생겨 관련된 내용을 정리해보았다. 실제 initcontainer는 container가 동작되기 약 3초정도 후에 동작된것을 확인할수 있다. 즉 동시에 실행되는것은 아니고 initcontainer가 먼저 동작되고 완료된 이후 실제 서비스가 될 container가 동작되었다. (참고로 현재 환경은 이미 image가 pull 된 상태이다.) [root@node-003 ~]# crictl ps -a | grep openldap c680eec173823 e41f3abfaad4c 12 minutes ago Running openldap 0 80986d8ca7d21..
- Total
- Today
- Yesterday
- minikube
- open policy agent
- Terraform
- ansible
- crashloopbackoff
- OpenStack
- boundary ssh
- DevSecOps
- mattermost
- hashicorp boundary
- openstack backup
- Jenkinsfile
- kata container
- minio
- K3S
- metallb
- macvlan
- vmware openstack
- azure policy
- kubernetes install
- kubernetes
- openstacksdk
- socket
- jenkins
- ceph
- wsl2
- Helm Chart
- aquasecurity
- GateKeeper
- nginx-ingress
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |