# 本文档基于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/