kubespary upgrade 과정중 아래와 같은 이슈로 인해 kubelet이 정상적으로 동작되지 않는 상황이 발생되어 kubespary upgrade가 실패되는 상황이 발생되었다. Oct 24 00:35:14 master001 kubelet[2553253]: I1024 00:35:14.327902 2553253 kubelet_node_status.go:74] "Successfully registered node" node="master001" Oct 24 00:35:14 master001 kubelet[2553253]: I1024 00:35:14.334714 2553253 kubelet_node_status.go:554] "Recording event message for node" node="mas..
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)를 지향한다. ..
- Total
- Today
- Yesterday
- nginx-ingress
- boundary ssh
- metallb
- minio
- crashloopbackoff
- DevSecOps
- openstacksdk
- K3S
- kubernetes install
- Terraform
- Jenkinsfile
- kubernetes
- ansible
- ceph
- aquasecurity
- open policy agent
- vmware openstack
- hashicorp boundary
- jenkins
- macvlan
- minikube
- Helm Chart
- azure policy
- OpenStack
- openstack backup
- GateKeeper
- kata container
- mattermost
- socket
- wsl2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |