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 배포
글 작성 시기에 맞는 버전을 정의하였지만 버전을 정의하지 않으면 최신 버전을 가져옴
kubekey로 cluster를 만들기 전에 몇 가지 사전 작업이 필요
우선 각 노드에 필요한 것들을 설치
node1]# yum install -y ebtables socat ipset conntrack
node2]# yum install -y ebtables socat ipset conntrack
여러 노드에 설치할 경우 각 노드에 설치
설치가 완료되면 kubekey로 kubernetes, kubesphere 설치할 때 같이 설치된 config-sample.yaml을 수정
apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: node1, address: 172.16.0.2, internalAddress: 172.16.0.2, user: ubuntu, password: "Qcloud@123"}
- {name: node2, address: 172.16.0.3, internalAddress: 172.16.0.3, user: ubuntu, password: "Qcloud@123"}
roleGroups:
etcd:
- node1
control-plane:
- node1
worker:
- node1
- node2
controlPlaneEndpoint:
## Internal loadbalancer for apiservers
# internalLoadbalancer: haproxy
domain: lb.kubesphere.local
address: ""
port: 6443
kubernetes:
version: v1.21.5
clusterName: cluster.local
network:
plugin: calico
kubePodsCIDR: 10.233.64.0/18
kubeServiceCIDR: 10.233.0.0/18
registry:
registryMirrors: []
insecureRegistries: []
addons: []
---
apiVersion: installer.kubesphere.io/v1alpha1
kind: ClusterConfiguration
metadata:
name: ks-installer
namespace: kubesphere-system
labels:
version: v3.2.1
...
해당 yaml중 상단 Cluster를 수정하여 multi node를 구현
apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: node1, address: 192.168.0.97, internalAddress: 192.168.0.97, user: root, password: passwd!}
- {name: node2, address: 192.168.0.177, internalAddress: 192.168.0.177, user: root, password: passwd!}
roleGroups:
etcd:
- node1
control-plane:
- node1
worker:
- node1
- node2
controlPlaneEndpoint:
##Internal loadbalancer for apiservers
#internalLoadbalancer: haproxy
각 host는 각 상황에 맞는 옵션으로 설정
host에 설정된 name으로 roleGroups에서 역할 정의
centos]# ./kk create cluster -f config-sample.yaml
config-sample.yaml로 cluster를 제작
만약 설치 중에 위처럼 필요한 것들에 y가 되어있지 않아 설치가 안된다면 해당하는 것을 아래 명령어 중 선택해서 설치
node1]# yum install -y ebtables socat ipset conntrack
이후 http://<node ip>:30880/로 들어가 kubesphere에 접속
floating ip이기 때문에 위에서 설정한 ip와 다름
address : admin
password : P@88w0rd
위의 주소와 비밀번호로 초기 값이 설정되어 있음
Kubesphere의 config-sample에서 logging 부분을 지원
해당 부분을 true로 바꾼 상태로 create를 진행할 경우 같이 수정
true로 변경 후 위로 가면 elasticsearch에 대한 설정부가 존재
kubesphere의 docs와 약간 다르지만 근본적으로 동일
주석처리된 부분을 해제하고 상황에 맞게 수정하여 사용
logMaxAge는 로그의 보존 기간을 의미
이미 모두 설치한 상태에서 진행한다면 아래의 방법을 사용
centos]# kubectl edit cc -n kubesphere-system ks-installer
위의 명령어를 사용하면 실행상태에서도 수정이 가능
진행하여 아래와 유사한 부분을 탐색
진행된 상태이기에 다르지만 초기 상태는 elasticsearch 관련 코드가 존재하지 않음
역시 logging 부분을 찾아서 enabled을 true로 교체
이 두 부분을 변경하면 어느정도 시간이 흐른 후 수정이 이뤄짐
수정이 되었다면 system components에 추가 아이콘이 생성
툴박스를 통해 container log search가 가능
'Kubernetes' 카테고리의 다른 글
Kubernetes EFK (0) | 2024.05.23 |
---|---|
Kubernetes Prometheus (0) | 2024.05.23 |
Kubesphere Federation (0) | 2024.05.23 |
Managed K8s & On premise K8s (0) | 2024.05.23 |
Cloud provider Managed K8s Service (0) | 2024.05.23 |