CauchyK零SK壹S
- 已编辑
环境准备
以三台EulerOS 2.5 64bit 为例:
name | ip | role |
---|---|---|
node1 | 192.168.179.253 | etcd, master, worker |
node2 | 192.168.218.146 | worker |
node3 | 192.168.81.10 | worker |
确保机器已经安装所需依赖软件(离线环境需要有可用yum源或相关rpm包),以yum为例:
yum install ebtables socat ipset conntrack docker -y
确保有可用私有镜像仓库,以docker registry为例(测试用):
docker run -d -p 5000:5000 --name=registry --restart=always --privileged=true --log-driver=none -v /mnt/registry:/var/lib/registry registry:2.7.1
# 为所有节点配置insecure-registries, /etc/docker/daemon.json
{
"insecure-registries": ["192.168.179.253:5000"]
}
# 重启docker生效
systemctl restart docker
获取安装资源
kk:
curl -O -k https://kubernetes.pek3b.qingstor.com/tools/kubekey/kk
下载二进制文件:
curl -O -k https://kubernetes.pek3b.qingstor.com/tools/kubekey/kubekey.tar.gz
解压资源包:
tar -zxvf kubekey.tar.gz
确保 kk 可执行文件与 kubekey 处于同级目录
找一台有网的机器,通过镜像列表下载 KubeSphere 2.1.1 + Kubernetes 的镜像:
注意:以下Kubernetes 的镜像版本默认是 v1.17.9,可以修改镜像 tag v1.17.9 为其它 K8s 版本,如:v1.15.12、v1.16.13。
openebs_localpv:
- calico/kube-controllers:v3.15.1
- calico/node:v3.15.1
- coredns/coredns:1.6.0
- kubesphere/k8s-dns-node-cache:1.15.12
- kubesphere/kube-apiserver:v1.17.9
- kubesphere/kube-controller-manager:v1.17.9
- kubesphere/kube-proxy:v1.17.9
- kubesphere/kube-scheduler:v1.17.9
- kubesphere/node-disk-manager:0.5.0
- kubesphere/node-disk-operator:0.5.0
- kubesphere/provisioner-localpv:1.10.0
ks_minimal_images:
- kubesphere/ks-console:v2.1.1
- kubesphere/kubectl:v1.0.0
- kubesphere/ks-account:v2.1.1
- kubesphere/ks-devops:flyway-v2.1.0
- kubesphere/ks-apigateway:v2.1.1
- kubesphere/ks-apiserver:v2.1.1
- kubesphere/ks-controller-manager:v2.1.1
- kubesphere/cloud-controller-manager:v1.4.0
- kubesphere/ks-installer:v2.1.1
- quay.azk8s.cn/kubernetes-ingress-controller/nginx-ingress-controller:0.24.1
- mirrorgooglecontainers/defaultbackend-amd64:1.4
- gcr.azk8s.cn/google_containers/metrics-server-amd64:v0.3.1
- kubesphere/configmap-reload:v0.3.0
- kubesphere/prometheus:v2.5.0
- kubesphere/prometheus-config-reloader:v0.34.0
- kubesphere/prometheus-operator:v0.34.0
- kubesphere/kube-rbac-proxy:v0.4.1
- kubesphere/kube-state-metrics:v1.7.2
- kubesphere/node-exporter:ks-v0.16.0
- kubesphere/addon-resizer:1.8.4
- kubesphere/k8s-prometheus-adapter-amd64:v0.4.1
- grafana/grafana:5.2.4
- redis:5.0.5-alpine
- haproxy:2.0.4
- alpine:3.10.4
- quay.azk8s.cn/coreos/etcd:v3.2.18
- mysql:8.0.11
- nginx:1.14-alpine
- postgres:9.6.8
- osixia/openldap:1.3.0
- minio/minio:RELEASE.2019-08-07T01-59-21Z
- minio/mc:RELEASE.2019-08-07T23-14-43Z
ks_notification_images:
- kubesphere/notification:v2.1.0
- kubesphere/notification:flyway_v2.1.0
- kubesphere/alerting-dbinit:v2.1.0
- kubesphere/alerting:v2.1.0
- kubesphere/alert_adapter:v2.1.0
openpitrix_images:
- openpitrix/release-app:v0.4.3
- openpitrix/openpitrix:flyway-v0.4.8
- openpitrix/openpitrix:v0.4.8
- openpitrix/runtime-provider-kubernetes:v0.1.3
ks_devops_images:
- kubesphere/jenkins-uc:v2.1.1
- jenkins/jenkins:2.176.2
- jenkins/jnlp-slave:3.27-1
- kubesphere/builder-base:v2.1.0
- kubesphere/builder-nodejs:v2.1.0
- kubesphere/builder-maven:v2.1.0
- kubesphere/builder-go:v2.1.0
- sonarqube:7.4-community
- kubesphere/s2ioperator:v2.1.1
- kubesphere/s2irun:v2.1.1
- kubesphere/s2i-binary:v2.1.0
- kubesphere/tomcat85-java11-centos7:v2.1.0
- kubesphere/tomcat85-java11-runtime:v2.1.0
- kubesphere/tomcat85-java8-centos7:v2.1.0
- kubesphere/tomcat85-java8-runtime:v2.1.0
- kubesphere/java-11-centos7:v2.1.0
- kubesphere/java-8-centos7:v2.1.0
- kubesphere/java-8-runtime:v2.1.0
- kubesphere/java-11-runtime:v2.1.0
- kubesphere/nodejs-8-centos7:v2.1.0
- kubesphere/nodejs-6-centos7:v2.1.0
- kubesphere/nodejs-4-centos7:v2.1.0
- kubesphere/python-36-centos7:v2.1.0
- kubesphere/python-35-centos7:v2.1.0
- kubesphere/python-34-centos7:v2.1.0
- kubesphere/python-27-centos7:v2.1.0
ks_logger_images:
- kubesphere/elasticsearch-curator:v5.7.6
- kubesphere/elasticsearch-oss:6.7.0-1
- kubesphere/fluent-bit:v1.3.2-reload
- docker.elastic.co/kibana/kibana-oss:6.7.0
- dduportal/bats:0.4.0
- docker:19.03
- kubesphere/fluentbit-operator:v0.1.0
- kubesphere/fluent-bit:v1.3.5-reload
- kubesphere/configmap-reload:v0.0.1
- kubesphere/log-sidecar-injector:1.0
istio_images:
- istio/kubectl:1.3.3
- istio/proxy_init:1.3.3
- istio/proxyv2:1.3.3
- istio/citadel:1.3.3
- istio/pilot:1.3.3
- istio/mixer:1.3.3
- istio/galley:1.3.3
- istio/sidecar_injector:1.3.3
- istio/node-agent-k8s:1.3.3
- jaegertracing/jaeger-operator:1.13.1
- jaegertracing/jaeger-agent:1.13
- jaegertracing/jaeger-collector:1.13
- jaegertracing/jaeger-query:1.13
- kubesphere/examples-bookinfo-productpage-v1:1.13.0
- kubesphere/examples-bookinfo-reviews-v1:1.13.0
- kubesphere/examples-bookinfo-reviews-v2:1.13.0
- kubesphere/examples-bookinfo-reviews-v3:1.13.0
- kubesphere/examples-bookinfo-details-v1:1.13.0
- kubesphere/examples-bookinfo-ratings-v1:1.13.0
example_images:
- busybox:1.31.1
- joosthofman/wget:1.0
- kubesphere/netshoot:v1.0
- nginxdemos/hello:plain-text
- wordpress:4.8-apache
- mirrorgooglecontainers/hpa-example:latest
- java:openjdk-8-jre-alpine
- fluent/fluentd:v1.4.2-2.0
- perl:latest
将镜像导入离线仓库中
注意:上传镜像时请保持镜像namespace不变 (可将镜像保存为tar文件,放置于push-images.sh同级目录,使用push-images.sh上传)
cd images
./push-images.sh 192.168.179.253:5000
集群安装
创建集群配置文件
./kk create config --with-kubesphere v2.1.1
填写集群配置文件
apiVersion: kubekey.kubesphere.io/v1alpha1
kind: Cluster
metadata:
name: config-sample
spec:
hosts:
- {name: node1, address: 192.168.179.253, internalAddress: 192.168.179.253, password: Huawei@123}
- {name: node2, address: 192.168.218.146, internalAddress: 192.168.218.146, password: Huawei@123}
- {name: node3, address: 192.168.81.10, internalAddress: 192.168.81.10, password: Huawei@123}
roleGroups:
etcd:
- node1
master:
- node1
worker:
- node1
- node2
- node3
controlPlaneEndpoint:
domain: lb.kubesphere.local
address: ""
port: "6443"
kubernetes:
version: v1.17.6
imageRepo: kubesphere
clusterName: cluster.local
network:
plugin: calico
kube_pods_cidr: 10.233.64.0/18
kube_service_cidr: 10.233.0.0/18
registry:
privateRegistry: 192.168.179.253:5000
registryMirrors: []
insecureRegistries: []
storage:
defaultStorageClass: localVolume
localVolume:
storageClassName: local
---
apiVersion: v1
data:
ks-config.yaml: |
---
local_registry: "192.168.179.253:5000"
persistence:
storageClass: ""
etcd:
monitoring: False
endpointIps: 192.168.0.7,192.168.0.8,192.168.0.9
port: 2379
tlsEnable: True
common:
mysqlVolumeSize: 20Gi
minioVolumeSize: 20Gi
etcdVolumeSize: 20Gi
openldapVolumeSize: 2Gi
redisVolumSize: 2Gi
metrics_server:
enabled: False
console:
enableMultiLogin: False # enable/disable multi login
port: 30880
monitoring:
prometheusReplicas: 1
prometheusMemoryRequest: 400Mi
prometheusVolumeSize: 20Gi
grafana:
enabled: False
logging:
enabled: False
elasticsearchMasterReplicas: 1
elasticsearchDataReplicas: 1
logsidecarReplicas: 2
elasticsearchMasterVolumeSize: 4Gi
elasticsearchDataVolumeSize: 20Gi
logMaxAge: 7
elkPrefix: logstash
containersLogMountedPath: ""
kibana:
enabled: False
openpitrix:
enabled: False
devops:
enabled: False
jenkinsMemoryLim: 2Gi
jenkinsMemoryReq: 1500Mi
jenkinsVolumeSize: 8Gi
jenkinsJavaOpts_Xms: 512m
jenkinsJavaOpts_Xmx: 512m
jenkinsJavaOpts_MaxRAM: 2g
sonarqube:
enabled: False
postgresqlVolumeSize: 8Gi
servicemesh:
enabled: False
notification:
enabled: False
alerting:
enabled: False
kind: ConfigMap
metadata:
name: ks-installer
namespace: kubesphere-system
labels:
version: v2.1.1
执行安装
./kk create cluster -f config-sample.yaml
等待安装完成