天天看點

部署生産環境高可用KubeSphere

# 本文檔基于CentOS7.6發行版最小化安裝部署

# 環境準備:
IP                  hostname        configuration   role
192.168.200.141     LB1       1C2G            LB/VIP:192.168.200.20
192.168.200.142     LB2       1C2G            LB
192.168.200.161     master01-161    4C8G            docker-ce/kk
192.168.200.162     master02-162    4C8G            docker-ce/
192.168.200.163     master03-163    4C8G            docker-ce/

# 實驗環境使用nginx+keepalived做負載均衡高可用,也可使用官方文檔中用的haproxy+keepalived
yum -y install nginx keepalived
yum -y install nginx-all-modules.noarch

# nginx配置檔案stream段配置
stream {
    log_format proxy '$time_local|$remote_addr|$upstream_addr|$protocol|$status|'
                     '$session_time|$upstream_connect_time|$bytes_sent|$bytes_received|'
                     '$upstream_bytes_sent|$upstream_bytes_received' ;
    upstream api_server {
        least_conn;
        server 192.168.200.161:6443 max_fails=3 fail_timeout=5s;
        server 192.168.200.162:6443 max_fails=3 fail_timeout=5s;
        server 192.168.200.163:6443 max_fails=3 fail_timeout=5s;
    }
    server {
        listen     6443;
        proxy_pass api_server;
        access_log /var/log/nginx/proxy.log proxy;
    }
}

# 安裝依賴
yum -y install conntrack socat

# 配置環境變量 ps:不設定預設會從github和google拉取鏡像
export KKZONE=cn

# 下載下傳 KubeKey
curl -sfL https://get-kk.kubesphere.io | VERSION=v1.1.1 sh -
chmod +x kk

# 生成配置檔案
./kk create config --with-kubernetes v1.20.4 --with-kubesphere v3.1.1

# 自定義配置檔案
vim config-sample.yaml
apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:
  name: config-sample
spec:
  hosts:
  - {name: master1, address: 192.168.60.152, internalAddress: 192.168.60.152, user: root, password: P@ssw0rd}
  - {name: worker1, address: 192.168.60.153, internalAddress: 192.168.60.153, user: root, password: P@ssw0rd}
  - {name: worker2, address: 192.168.60.154, internalAddress: 192.168.60.154, user: root, password: P@ssw0rd}
  roleGroups:
    etcd:
    - master1
    master:
    - master1
    worker:
    - worker1
    - worker2
  controlPlaneEndpoint:
    domain: lb.kubesphere.local
    address: ""                    
    port: "6443"
  
# 建立叢集
./kk create cluster -f config-sample.yaml

# 檢視安裝日志
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f

# 删除叢集
./kk delete cluster -f config-sample.yaml

# kubectl指令補全
apt-get install bash-completion
echo 'source <(kubectl completion bash)' >>~/.bashrc
kubectl completion bash >/etc/bash_completion.d/kubectl

官方文檔:
https://kubesphere.io/zh/docs/installing-on-linux/
      

繼續閱讀