Skip to content

Instantly share code, notes, and snippets.

Avatar

Yongbok Kim ruo91

View GitHub Profile
@ruo91
ruo91 / ocp4-aws-permission-for-iam-user.json
Created Jun 5, 2021
OpenShift v4x - Required AWS permissions for the IAM user
View ocp4-aws-permission-for-iam-user.json
/*
- RefURL
https://docs.openshift.com/container-platform/4.7/installing/installing_aws/installing-aws-account.html#installation-aws-permissions_installing-aws-account
- Required EC2 permissions for installation
file: ocp4-ec2-permissions.json
*/
{
"Version": "2012-10-17",
"Statement": [
@ruo91
ruo91 / ocp4-idp.md
Last active May 22, 2021
OpenShift v4.x - Identity Provider 연동
View ocp4-idp.md

OpenShift v4.x - Identity Provider 연동

OpenShift에서 Identity Provider(a.k.a IDP)를 연동하여, 로그인시 통합인증(Single Sign On)을 구현하는 방법에 대해서 작성한다.

제공하는 Identity Provider가 많지만 현업에서 자주 사용하는 방식은 htpasswd, LDAP, OpenID가 있다.
이 3가지 방식을 기준으로 PoC 환경을 만들고 이를 검증하는 방식으로 진행 한다.

1. HTPasswd 방식

웹 기반의 인증 방식을 구현할때 사용하는 방식 중에 하나이다.
이 인증 방식은 Apache 웹 서버에서 mod_auth_basic 모듈을 사용하여 HTTP 인증 기능(Basic Authentication)을 구현할때,
htpasswd를 사용하여 사용자 계정을 생성하고 파일 기반의 데이터베이스를 사용한다.

@ruo91
ruo91 / ocp4-self-upstream-dns.md
Last active Jun 3, 2021
OpenShift v4.x - Self Upstream DNS 서버구성
View ocp4-self-upstream-dns.md

OpenShift v4.x - Self Upstream DNS 서버구성

OpenShift에서 제공하는 CoreDNS Operator의 기능적 한계에 대한 자체 구현이 주 목적이며,
CoreDNS Container 이미지를 통해 외부 질의에 대한 것들을 제어 하도록 한다.

이 글을 통해 Production 레벨에서 적용 후 문제가 발생하는 부분에 대해서는 책임을 지지 않는다.

테스트 환경

  • Bastion VM (NAT)
  • RHEL 8.x
  • Podman / SKOPEO / CRI-O
@ruo91
ruo91 / ocp4-scheduling.md
Last active Apr 15, 2021
OpenShift v4.x - Scheduling: nodeSelector & nodeAffinity
View ocp4-scheduling.md

OpenShift v4.x - Scheduling: nodeSelector & nodeAffinity

nodeSelector는 단순히 Label 기준으로만 Pod를 배치한다.
nodeAffinity는 Label을 사용하면서 조금 더 효율성있게 Pod를 배치할 수 있다.

결론은 운영 측면에서 Affinity를 사용 하는것이 좋다.
그 이유는 hostname, cpu arch, label 등과 같은 기준으로 세부적으로 제어할 수 있기 때문이며,
nodeSelector는 단순히 Label을 기준으로 제어하기 때문에 기능적 측면에서는 비효율적이다.

1. Node Selector 사용법

Node Selector는 Label을 기준으로 Pod를 배포 하는 전략이다.

@ruo91
ruo91 / ocp4-certificate-expiry-date.md
Last active Apr 10, 2021
OpenShift v4.x - 인증서 만료 기간
View ocp4-certificate-expiry-date.md

OpenShift v4.x - 인증서 만료 기간

OpenShift v4.x 버전의 인증서 만료 기간에 대해서 정리한다.

0. 공통

  • GMT(Greenwich Mean Time)+0, Time Zone 기준
  • ignition 생성 시점부터 인증서 발급.

1. Bootstrap API 인증서

OpenShift 클러스터를 초기 구성을 위해 생성되는 Bootstrap API 서버의 인증서 만료 기간은 24h 동안 유효하다.

@ruo91
ruo91 / self-signed-cert.sh
Last active Mar 23, 2021
OpenSSL - Self-Signed 인증서 생성 스크립트
View self-signed-cert.sh
#---------------------------------------------------#
# - Title
# Generating Self-Signed Certificate with OpenSSL
#
# - Script Version
# v1.0
#
# - OS Supported
# All
#
@ruo91
ruo91 / ocp4-stf-olm.md
Created Mar 22, 2021
OpenShift v4.6 - Service Telemetry Framework 1.2 (Test)
View ocp4-stf-olm.md

OpenShift v4.6 - Service Telemetry Framework 1.2

https://infrawatch.github.io/documentation/

1. STF Operator Index 다운로드

- RedHat Operator

[root@bastion ~]# podman pull registry.redhat.io/redhat/redhat-operator-index:v4.6

- STF Catalog

[root@bastion ~]# podman pull quay.io/redhat-operators-stf/stf-catalog:v4.6
@ruo91
ruo91 / ocp-311-haproxy-config.template
Created Mar 15, 2021
OpenShift v3.11 - Disable HTTP Method & Min version TLSv1.2
View ocp-311-haproxy-config.template
{{/*
haproxy-config.cfg: contains the main config with helper backends that are used to terminate
encryption before finally sending to a host_be which is the backend that is the final
backend for a route and contains all the endpoints for the service
*/}}
{{- define "/var/lib/haproxy/conf/haproxy.config" }}
{{- $workingDir := .WorkingDir }}
{{- $defaultDestinationCA := .DefaultDestinationCA }}
{{- $dynamicConfigManager := .DynamicConfigManager }}
{{- $router_ip_v4_v6_mode := env "ROUTER_IP_V4_V6_MODE" "v4" }}
@ruo91
ruo91 / ocp4-disconnected-upgrade.md
Last active Mar 15, 2021
How to upgrade a disconnected cluster in OpenShift 4.x
View ocp4-disconnected-upgrade.md

How to upgrade a disconnected cluster in OpenShift 4.x

OpenShift v4.x 버전부터는 클라우드 환경에서 좀 더 유연하게 관리가 될 수 있도록,
OTA(Over The Air) 업그레이드 방식을 사용한다.

OTA 방식은 스마트폰 업데이트 방식을 생각하면 쉽게 이해가 가능하다.

즉, 사용중인 제품에서 제공하는 업데이트 기능을 통해 외부 업데이트 서버에 주기적으로 요청하여,
최신의 정보를 받아오면서, 해당 제품의 새로운 버전이나 특정 버전에 대한 취약점 또는 개선사항 등이 있을 경우,
사용자 동의를 얻어 업데이트를 진행 하는 방식이다.

@ruo91
ruo91 / ocp4-ImagePrunerDegraded.md
Last active Mar 14, 2021
OpenShift v4.x - ImagePrunerDegraded: Job has reached the specified backoff limit
View ocp4-ImagePrunerDegraded.md

OpenShift v4.x - ImagePrunerDegraded: Job has reached the specified backoff limit

본 이슈는 내부 레지스트리인 image-registry의 Operator 상태가 Degraded로 발생하는 이슈이다.

해당 버그 리포트를 살펴보면 OCP v4.4 버전에서도 발생했던 사항으로,
이슈가 발생하는 시점은 image-registry operator의 managementState를 Removed 상태에서 pruner job이 생성이 될때까지 기다리면 발생한다. (현재 OCP v4.6은 managementState는 Removed가 기본)

1. 이슈

[root@bastion ~]# oc describe clusteroperators image-registry | grep 'ImagePrunerDegraded'