一、准备工作
GlusterFS独立部署
所有节点安装socat、conntrack、ebtables、ipset
apt install -f openssl socat conntrack ebtables ipset
二、GlusterFS部署文件
vi /root/glusterfs-sc.yaml
apiVersion: v1
kind: Secret
metadata:
name: heketi-secret
namespace: kube-system
type: kubernetes.io/glusterfs
data:
key: dUpmQmpSU0g= # glusterfs ssh admin 密码base64
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
storageclass.beta.kubernetes.io/is-default-class: "true"
storageclass.kubesphere.io/supported-access-modes: '["ReadWriteOnce","ReadOnlyMany","ReadWriteMany"]'
name: glusterfs
parameters:
clusterid: "6c9c89de14a83a3746482a8c3030850a"
gidMax: "50000"
gidMin: "40000"
restauthenabled: "true"
resturl: "http://192.168.0.2:38080"
restuser: admin
secretName: heketi-secret
secretNamespace: kube-system
volumetype: "replicate:3"
provisioner: kubernetes.io/glusterfs
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
- 下载KubeKey
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.2 sh -
chmod +x kk
./kk create config --with-kubernetes v1.22.12 --with-kubesphere v3.3.1
vi config-sample.yaml
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: ksmaster-01, address: 192.168.0.2, internalAddress: 192.168.0.2, user: master, password: "7QGQrjCZ8sp5yLCv"}
- {name: ksworker-01, address: 192.168.0.3, internalAddress: 192.168.0.3, user: master, password: "7QGQrjCZ8sp5yLCv"}
- {name: ksworker-02, address: 192.168.0.4, internalAddress: 192.168.0.4, user: master, password: "7QGQrjCZ8sp5yLCv"}
roleGroups:
etcd:
- ksmaster-01
control-plane:
- ksmaster-01
worker:
- ksworker-01
- ksworker-02
controlPlaneEndpoint:
## Internal loadbalancer for apiservers
# internalLoadbalancer: haproxy
domain: lb.kubesphere.local
address: ""
port: 6443
kubernetes:
version: v1.22.12
clusterName: cluster.local
autoRenewCerts: true
containerManager: docker
etcd:
type: kubekey
network:
plugin: calico
kubePodsCIDR: 10.233.64.0/18
kubeServiceCIDR: 10.233.0.0/18
## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
multusCNI:
enabled: false
registry:
privateRegistry: ""
namespaceOverride: ""
registryMirrors: []
insecureRegistries: []
addons:
- name: glusterfs
namespace: kube-system
sources:
yaml:
path:
- /root/glusterfs-sc.yaml
./kk create cluster -f config-sample.yaml
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
- kubesphere开启集群网关
vi /etc/kubernetes/manifests/kube-apiserver.yaml
- --service-node-port-range=1-65535
systemctl daemon-reload && systemctl restart kubelet
- 更改集群网关端口
kubectl edit svc kubesphere-router-kubesphere-system -n kubesphere-controls-system