# 本文檔基於CentOS7.6發行版最小化安裝部署 # 環境准備: ip hostname cpu/memory 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/ 192.168.200.164 worker01-164 8C16G docker-ce/ 192.168.200.165 worker02-165 8C16G docker-ce/ # 實驗環境使用nginx+keepalived做負載均衡高可用,也可使用官方文檔中用的haproxy+keepalived # LB環境 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; } } # master環境 # 安裝依賴 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: master01-161, address: 192.168.200.161, internalAddress: 192.168.200.161, user: root, password: 123456} - {name: master02-162, address: 192.168.200.162, internalAddress: 192.168.200.162, user: root, password: 123456} - {name: master03-163, address: 192.168.200.163, internalAddress: 192.168.200.163, user: root, password: 123456} - {name: worker01-164, address: 192.168.200.164, internalAddress: 192.168.200.164, user: root, password: 123456} - {name: worker02-165, address: 192.168.200.165, internalAddress: 192.168.200.165, user: root, password: 123456} roleGroups: etcd: - master01-161 - master02-162 - master03-163 master: - master01-161 - master02-162 - master03-163 worker: - worker01-164 - worker02-165 controlPlaneEndpoint: domain: lb.kubesphere.local address: "192.168.200.20" 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/