본문 바로가기

전체 글

(42)
Kubernetes Prometheus 프로메테우스를 설치하기 앞서 네임 스페이스 정의#monitoring namespace 정의kind: NamespaceapiVersion: v1metadata: name: monitoring네임 스페이스의 이름을 변경해도 큰 문제는 없으나 앞으로 소개할 코드에서 네임 스페이스를 같은 것으로 변경 해야 함 프로메테우스의 cluster role을 정의#프로메테우스의 k8s api 접근 권한 apiVersion: rbac.authorization.k8s.io/v1beta1kind: ClusterRolemetadata: name: prometheus namespace: monitoringrules:- apiGroups: [""] resources: - nodes - nodes/proxy - servi..
Kubesphere Federation kubesphere에서 서로 다른 클러스터를 각각 host와 member로 역할을 부여하여 federation을 구현하는 방법에 대해 기술여러 클러스터를 엮기 위해선 위의 두 옵션을 변경해야 함clusterRole 옵션은 host나 member로 정할 수 있고, jwtSecret을 host가 발급받아 member에게 적용하는 방식kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v "apiVersion" | grep jwtSecret 위의 명령어로 jwtSecret을 발급받아 member가 될 클러스터에 부여Add Clustermember cluster의 .kube/config의 내용을 받아 채워넣음 수정 사항clusters:- ..
Kubekey를 사용한 Kubernetes, Kubesphere 배포 Kubekey를 통해 Kubernetes, Kubesphere을 배포하는 방법 게시Install a Multi-node Kubernetes and KubeSphere Cluster위의 url을 기반으로 작성됨centos]# curl -sfL https://get-kk.kubesphere.io | VERSION=v2.2.1 sh -centos]# chmod +x kk위의 명령어로 kubekey를 설치하고 chmod를 통해 ./kk 명령어를 활성화 centos]# ./kk create config --with-kubernetes v1.21.5 --with-kubesphere v3.3.0위의 명령어로 kubernetes와 kubesphere 배포글 작성 시기에 맞는 버전을 정의하였지만 버전을 정의하지 않으면 ..
Managed K8s & On premise K8s 기본적인 구성요소는 동일Master node, Worker node, API, ETCD 등 일반적으로 구성되는 k8s 구성management k8s에서는 이 중 Worker node를 사용자들에게 제공하고 Master node를 제공 업체 측에서 관리사용자는 배포 및 스케일링 작업을 주로 작업 제공 업체가 제공하는 서비스는 아래와 같음보안IAM AuthenticatorRBAC 지원각 Cloud 제공 업체 별로 보안 서비스 센터 지원정책 설정 및 관리 UI 제공네트워킹IPv6 지원서비스 메시 지원서비스 메시로 트래픽 라우팅을 정의하여 암호화로드 밸런싱Application Load Balancer 제공Network Load Balancer 제공Classic Load Balancer 제공인증서 등록으로 HTT..
Cloud provider Managed K8s Service Managed K8s란 여러 클라우드 제공업체에서 실시하는 서비스 중 하나로 업체에서 Control Plane을 관리하고 사용자에게 Worker Node만 제공하는 것으로 관리 포인트를 업체가 상당 수 담당하여 application, service 배포에 대한 관리만 하도록 지원하는 상품EKS의 Managed K8s Service 배포 과정EKS VPC라는 분리된 가상 네트워크에서 Control Plane이 동작하고, 유저는 유저를 위한 VPC에 배포된 Worker Node에 application, service 배포Kubectl을 통한 명령어는 aws eks update-kubeconfig --region us-west-2 --name eks-devstack로 생성한 config를 등록해 Control..
Python SQLAlchemy mysql과의 연결성은 다음과 같음 [db]sql_connection = mysql+pymysql://my_database:pass@mysqlurl/my_database_name?charset=utf8mysql안에 my_database_name이라는 database를 만들어 둔 상태에서 연결 처음부터 구성한 것은 아니라서 query와 model 선언에 대한 것만 작성import sqlalchemy as saclass DataBaseModel(base_model.Base, base_model.ModelBase): __tablename__ = 'mysql_table' option1 = sa.Column(sa.String(20), nullable=False) created_dt = sa..
Python Request Python code 상에서 API를 호출하기 위한 모듈requests.(get, post, put, delete 등)으로 API 호출parameter로 url, headers, params, json, data, cookies, proxies 등을 받을 수 있음API의 body를 채울 때 각각 아래 parameter를 사용GETparamsPOSTjson, dataPUTjson, dataDELETEjson이나 data, param은 dict 형태의 데이터를 입력받음 pecan에서 제공하는 pecan.request 모듈을 이용하여 서버로 들어온 요청의 정보를 뽑아내어 사용 가능pecan.request.(path, headers, body 등)여기서 추출한 정보는 자체 자료 타입을 가지는 경우도 있기에 형변..
Fluentd 설정 방법 fluentd.yaml---apiVersion: v1kind: ServiceAccountmetadata:  name: fluentd  namespace: oscmp-devimagePullSecrets: - name: redii---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  name: fluentdrules:- apiGroups:  - ""  resources:  - pods  - namespaces  verbs:  - get  - list  - watch---kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata:  name: fluentdroleRef..