k8s에 jenkins 2.319.1 설치후 pipeline 생성해서 build 할때
jenkins 화면의 build 로그에는 별 다른 에러 내용이 없으나 build 가 제대로 안되는 경우 발생

jenkins 컨테이너  로그를 확인해 보면 아래와 같은 메세지가 보임

org.csanchez.jenkins.plugins.kubernetes.KubernetesClientProvider$UpdateConnectionCount@1bbc917c failed


구글링 해보면 kubernetes-client-api plugin 최근 버전의 문제라고 나옴. 아래 페이지(https://issues.jenkins.io/browse/JENKINS-67484)에 있는 이전 버전을 받아서 설치하면 해결됨



jenkins plugin 파일로 설치는 plugin manager 화면의 advanced 탭에서 (확장자가 hpi 인 파일 업로드)

'Open Source' 카테고리의 다른 글

docker install on CentOS 8.x  (0) 2021.09.29
Keycloak(User Federation) - LDAP 연계  (0) 2020.06.08
LDAP install on minikube  (0) 2020.06.08
Keycloak install on minikube  (0) 2020.06.08
install tekton on minikube  (0) 2020.04.21
Posted by jerymy
,

# install docker-ce, docker-ce-cli, containerd from https://docs.docker.com/engine/install/centos/

# Set up the repository
sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo


# Install Docker Engine
- Install the latest version of Docker Engine and containerd, or go to the next step to install a specific version:

# 가이드에는 아래 명령어로 되어있음 -> 실행하면 dependency 오류로 설치 안됨 -> 아래 --allowerasing 옵션 주면 podman 등 package remove 하면서 설치됨.

sudo yum install docker-ce docker-ce-cli containerd.io
sudo yum install docker-ce docker-ce-cli containerd.io --allowerasing


# Start Docker.
sudo systemctl start docker

# Verify that Docker Engine is installed correctly by running the hello-world image.
sudo docker run hello-world

 

# Uninstall Docker Engine

1. Uninstall the Docker Engine, CLI, and Containerd packages:

sudo yum remove docker-ce docker-ce-cli containerd.io


2. Images, containers, volumes, or customized configuration files on your host are not automatically removed. To delete all images, containers, and volumes:

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

'Open Source' 카테고리의 다른 글

jenkins pipeline build error  (0) 2022.01.05
Keycloak(User Federation) - LDAP 연계  (0) 2020.06.08
LDAP install on minikube  (0) 2020.06.08
Keycloak install on minikube  (0) 2020.06.08
install tekton on minikube  (0) 2020.04.21
Posted by jerymy
,

keycloak user management

- keycloak에 자체 생성

- user federation : ldap, AD 등 외부 user database와 연계

 

# minikube에 설치한 openldap과 연계 방법 정리

 

# Realm 선택 > 외쪽 메뉴에서 User Federation선택 > 오른쪽에서 ldap 선택

 

# 설정 내용

- Console Display name : ldap-openldap ( 마음대로 )
- Vendor : Other

- Connection url : ldap://ldap-openldap.ldap.svc:389 ( 동일 클러스터 내에 있어서 service 명으로 접근 ) 

- User DN : dc=ldap,dc=cloudpak,dc=com ( ldap 에서 지정한 정보 )
- Bind DN : cn=admin,dc=ldap,dc=cloudpak,dc=com ( ldap 로그인 정보 )

- Bind Credential : ldap의 로그인 암호

 

# ldap에 생성한 user, group 정보

 

# Synchronize all users 하면 ldap에 생성한 svc1-user1, svc1-user2 가 보임

- user01, user02, user03은 keycloak에 자체 생성한 user임.

 

 

# LDAP group 연계 : group연계는 ldap mapper에서 추가해야 함.

- Name : group ( 마음대로 )
- Mapper Type : group-ldap-mapper
- LDAP group DN : ou=groups,dc=ldap,dc=cloudpak,dc=com
- Group name ldap attribute : cn
- Group object classes : groupOfUniqueNames -> ldap에서 group생성할때 지정한 object class
- Membership ldap attribute : uniquemember

 

 

# ldap에서 생성된 group 연계 확인 

- svc1 ( group01은 keycloak에 생성한 group임 )

 

 

## 연계한 ldap 정보는 realm 간에 공유되지 않음 ( 생성한 user 정보도 공유 안됨 )

'Open Source' 카테고리의 다른 글

jenkins pipeline build error  (0) 2022.01.05
docker install on CentOS 8.x  (0) 2021.09.29
LDAP install on minikube  (0) 2020.06.08
Keycloak install on minikube  (0) 2020.06.08
install tekton on minikube  (0) 2020.04.21
Posted by jerymy
,

# openldap, phpldapadmin install

 

 

# 작업 directory 및 namespace 생성

root@minik8s:~# mkdir ldap
root@minik8s:~# cd ldap/
root@minik8s:~/ldap# ls
root@minik8s:~/ldap# kubectl create namespace ldap
namespace/ldap created
root@minik8s:~/ldap#

# helm repo 연결 및 config.yaml 생성

root@minik8s:~/ldap# helm repo add stable https://kubernetes-charts.storage.googleapis.com
"stable" has been added to your repositories
root@minik8s:~/ldap# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "codecentric" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈
root@minik8s:~/ldap# helm inspect values stable/openldap > config.yaml

# config.yaml 수정

- LDAP_DOMAIN : ldap.cloudpak.com

- adminPassword : 주석제거, 암호지정

- storageClass -> 'standard' ( minikube의 storageclass )

- size : 8Gi -> 5Gi -> minikube vm의 volume이 적어서 변경

 

# helm install

root@minik8s:~/ldap# helm install ldap -f config.yaml stable/openldap -n ldap

 

# phpldapadmin 설치 -> ldap에 console로 접근해서 관리 용도

root@minik8s:~/ldap# helm repo add cetic https://cetic.github.io/helm-charts
"cetic" has been added to your repositories
root@minik8s:~/ldap# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "cetic" chart repository
...Successfully got an update from the "codecentric" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈
root@minik8s:~/ldap# helm inspect values cetic/phpldapadmin > phpldapadmin.yaml

# phpldapadmin.yaml 수정

- LDAP_HOST : 앞에 설치한 openldap의 service 명( 동일 namespace 경우 ) 

- ClusterIP로 지정하고, 배포후 NordPort 변경 또는 ingress 생성

# helm install

helm install ldapadmin -f phpldapadmin.yaml cetic/phpldapadmin -n ldap

# ingress 생성

 

# web 접근 및 로그인

- openldap 생성시 지정한 계정명+도메인명으로 로그인 ( cn=admin,dc=ldap,dc=cloudpak,dc=com )

'Open Source' 카테고리의 다른 글

docker install on CentOS 8.x  (0) 2021.09.29
Keycloak(User Federation) - LDAP 연계  (0) 2020.06.08
Keycloak install on minikube  (0) 2020.06.08
install tekton on minikube  (0) 2020.04.21
Presto db 접근 방법  (0) 2020.03.31
Posted by jerymy
,

Keycloak is an open source Identity and Access Management solution aimed at modern applications and services. It makes it easy to secure applications and services with little to no code.

www.keycloak.org/about.html

 

Keycloak - About

About Keycloak is an open source Identity and Access Management solution aimed at modern applications and services. It makes it easy to secure applications and services with little to no code. This page gives a brief introduction to Keycloak and some of th

www.keycloak.org

Keycloak 기능

  • SSO
  • User Federation : LDAP, AD...
  • Account Management Console
  • Standard Protocols : OIDC, OAuth 2.0, SAML

# namespace 생성 및 helm repo 추가

root@minik8s:~# kubectl create ns keycloak
namespace/keycloak created
root@minik8s:~# helm repo add codecentric https://codecentric.github.io/helm-charts
"codecentric" has been added to your repositories

# keycloak config 설정을 위해 values.yaml 생성

root@minik8s:~# mkdir keycloak && cd keycloak
root@minik8s:~/keycloak# helm show values codecentric/keycloak > values.yaml

# values.yaml 내용 수정

- keycloak 계정 암호 지정

- ingress, route 생성시 true로 변경 ( 이 문서에서는 false로 설치 함 )

- DB 지정

- PVC 지정

- 생성된 PVC

# 설치 후 확인

root@minik8s:~/keycloak# kubectl get all -n keycloak
NAME                        READY   STATUS    RESTARTS   AGE
pod/keycloak-0              1/1     Running   0          2m13s
pod/keycloak-postgresql-0   1/1     Running   0          2m13s


NAME                                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)           AGE
service/keycloak-headless              ClusterIP   None             <none>        80/TCP,8443/TCP   2m15s
service/keycloak-http                  ClusterIP   10.104.146.230   <none>        80/TCP,8443/TCP   2m14s
service/keycloak-postgresql            ClusterIP   10.106.34.115    <none>        5432/TCP          2m14s
service/keycloak-postgresql-headless   ClusterIP   None             <none>        5432/TCP          2m15s


NAME                                   READY   AGE
statefulset.apps/keycloak              1/1     2m14s
statefulset.apps/keycloak-postgresql   1/1     2m14s

- values.yaml에서 ingress를 true로 하지 않아서 외부 접근 안됨 -> ClusterIP를 NodePort로 변경해서 접근 가능함

# clusterIP를 NodePort 로 변경후 확인
root@minik8s:~/keycloak# kubectl edit svc keycloak-http -n keycloak
service/keycloak-http edited
root@minik8s:~/keycloak# kubectl get all -n keycloak
NAME                        READY   STATUS    RESTARTS   AGE
pod/keycloak-0              1/1     Running   0          5m15s
pod/keycloak-postgresql-0   1/1     Running   0          5m15s


NAME                                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                       AGE
service/keycloak-headless              ClusterIP   None             <none>        80/TCP,8443/TCP               5m17s
service/keycloak-http                  NodePort    10.104.146.230   <none>        80:30478/TCP,8443:32572/TCP   5m16s
service/keycloak-postgresql            ClusterIP   10.106.34.115    <none>        5432/TCP                      5m16s
service/keycloak-postgresql-headless   ClusterIP   None             <none>        5432/TCP                      5m17s


NAME                                   READY   AGE
statefulset.apps/keycloak              1/1     5m16s
statefulset.apps/keycloak-postgresql   1/1     5m16s

 

# URL접근( http://<VM IP>:<NodePort>

# administration console 눌러서 login 화면 이동 -> values.yaml에서 지정한 계정/암호(keycloak / password)로 로그인

# Master Realm 은 default로 생성됨

- realm을 생성하고, clients(연계 대상 : jenkins 등)을 생성해서 연계함

'Open Source' 카테고리의 다른 글

Keycloak(User Federation) - LDAP 연계  (0) 2020.06.08
LDAP install on minikube  (0) 2020.06.08
install tekton on minikube  (0) 2020.04.21
Presto db 접근 방법  (0) 2020.03.31
mongodb 로그인, 조회 명령  (0) 2020.03.13
Posted by jerymy
,

 

# tekton 설치

$ kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml

 

# tekton dashboard 설치

$ kubectl apply --filename https://github.com/tektoncd/dashboard/releases/download/v0.6.0/tekton-dashboard-release.yaml

# tekton 설치 확인

# 외부 접근을 위해 tekton ingress 생성

$ kubectl apply -f ing-tekton.yaml

# ing-tekton.yaml, <VM_IP>는 본인의 IP로 변경 필요.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: tekton-dashboard
  namespace: tekton-pipelines
spec:
  rules:
  - host: tekton-dashboard.<VM_IP>.nip.io
    http:
      paths:
      - backend:
          serviceName: tekton-dashboard
          servicePort: 9097

ingress 적용하면

http://tekton-dashboard.<VM_IP>.nip.io 로 dashboard 접근 가능

 

# tekton cli 설치

# Get the tar.xz
curl -LO https://github.com/tektoncd/cli/releases/download/v0.8.0/tkn_0.8.0_Linux_x86_64.tar.gz

# Extract tkn to your PATH (e.g. /usr/local/bin)
sudo tar xvzf tkn_0.8.0_Linux_x86_64.tar.gz -C /usr/local/bin/ tkn

 

# tekton cli 설치확인

$ tkn version

 

 

참고사이트

https://github.com/tektoncd/pipeline/blob/master/docs/install.md#installing-tekton-pipelines-on-kubernetes

 

tektoncd/pipeline

A K8s-native Pipeline resource. Contribute to tektoncd/pipeline development by creating an account on GitHub.

github.com

 

'Open Source' 카테고리의 다른 글

Keycloak(User Federation) - LDAP 연계  (0) 2020.06.08
LDAP install on minikube  (0) 2020.06.08
Keycloak install on minikube  (0) 2020.06.08
Presto db 접근 방법  (0) 2020.03.31
mongodb 로그인, 조회 명령  (0) 2020.03.13
Posted by jerymy
,

Pod 으로 배포된 presto db에 접근하는 방법

 

# presto pod에 접속

$ oc exec -it presto-coordinator-0 -c presto /bin/bash

 

# presto pod 에서 실행

$ presto-cli --server https://presto:8080 --catalog hive --schema default --user root --keystore-path /opt/presto/tls/keystore.pem

# 카달로그 확인

$ show catalogs;

# metering 카달로그 선택

presto:metering> use metering;

# 테이블 목록 조회

presto:metering> show tables;

# sample query -> 데이터가 많은 경우 시간이 오래 걸림.

 

select count(*) from hive.metering.datasource_openshift_metering_pod_request_cpu_cores where dt='2020-03-23' and labels['namespace']='openshift-metering';

 

select * from datasource_openshift_metering_pod_memory_request_raw where namespace='openshift-metering' and dt='2020-03-23';

 

'Open Source' 카테고리의 다른 글

Keycloak(User Federation) - LDAP 연계  (0) 2020.06.08
LDAP install on minikube  (0) 2020.06.08
Keycloak install on minikube  (0) 2020.06.08
install tekton on minikube  (0) 2020.04.21
mongodb 로그인, 조회 명령  (0) 2020.03.13
Posted by jerymy
,

NoSQL database

JSON 형태 구조 

 

RDBMS    : 테이블(Table), 데이터(Row)

mongodb : 테이블(Collection), 데이터(Document)

# 로그인
$ mongo admin -u root -p {password}
MongoDB shell version v4.0.12

# db 조회
> show dbs
admin     0.000GB
config    0.000GB
db-users  0.000GB
local     0.000GB

# db 선택
> use db-users
switched to db db-users

# collection(table) 조회
> show collections
or > show tables
users --> 조회된 collection(table)

# 내용 조회(현재DB.collection)
> db.users.find()

# JSON 형태 보기
> db.user.find().pretty()

'Open Source' 카테고리의 다른 글

Keycloak(User Federation) - LDAP 연계  (0) 2020.06.08
LDAP install on minikube  (0) 2020.06.08
Keycloak install on minikube  (0) 2020.06.08
install tekton on minikube  (0) 2020.04.21
Presto db 접근 방법  (0) 2020.03.31
Posted by jerymy
,