前言
KubeKey是go语言开发的一款云原生容器构建工具,使用 KubeKe可以轻松、高效、灵活地单独或整体安装 Kubernetes 和 KubeSphere。本节我们使用KubeKey一键式部署一个k8s集群及k8s管理平台KubeSphere。
正文
①准备三台centos服务器,内核版本4.15 or later,服务器配置:2核虚拟CPU,4 GB 内存,30GB存储。
服务器配置 name ip m1 192.168.23.131 m2 192.168.23.132 m3 192.168.23.133 ②安装k8s环境依赖,在每台服务器执行以下命令
命令:yum install -y socat conntrack ebtables ipset
③下载KubeKey工具
//导入环境变量 export KKZONE=cn //下载kubekey curl -sfL https://get-kk.kubesphere.io | sh -
④ 使用KubeKey生成一个k8s集群以及KubeSphere集群管理平台启动文件模板k8s.yaml
命令:./kk create config --with-kubesphere v3.1.0 -f k8s.yaml
⑤ 修改k8s集群以及KubeSphere集群管理平台启动文件模板 k8s.yaml
apiVersion: kubekey.kubesphere.io/v1alpha2 kind: Cluster metadata: name: sample spec: hosts: - {name: m1, address: 192.168.23.131, internalAddress: 192.168.23.131, user: root, password: "root"} - {name: m2, address: 192.168.23.132, internalAddress: 192.168.23.132, user: root, password: "root"} - {name: m3, address: 192.168.23.133, internalAddress: 192.168.23.133, user: root, password: "root"} roleGroups: etcd: - m1 control-plane: - m1 worker: - m2 - m3 controlPlaneEndpoint: ## Internal loadbalancer for apiservers internalLoadbalancer: haproxy domain: lb.kubesphere.local address: "" port: 6443 kubernetes: version: v1.21.5 clusterName: cluster.local 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: plainHTTP: false privateRegistry: "" namespaceOverride: "" registryMirrors: [] insecureRegistries: [] addons: [] --- apiVersion: installer.kubesphere.io/v1alpha1 kind: ClusterConfiguration metadata: name: ks-installer namespace: kubesphere-system labels: version: v3.1.0 spec: persistence: storageClass: "" authentication: jwtSecret: "" zone: "" local_registry: "" etcd: monitoring: false endpointIps: localhost port: 2379 tlsEnable: true common: redis: enabled: false redisVolumSize: 2Gi openldap: enabled: false openldapVolumeSize: 2Gi minioVolumeSize: 20Gi monitoring: endpoint: http://prometheus-operated.kubesphere-monitoring-system.svc:9090 es: elasticsearchMasterVolumeSize: 4Gi elasticsearchDataVolumeSize: 20Gi logMaxAge: 7 elkPrefix: logstash basicAuth: enabled: false username: "" password: "" externalElasticsearchUrl: "" externalElasticsearchPort: "" console: enableMultiLogin: true port: 30880 alerting: enabled: false # thanosruler: # replicas: 1 # resources: {} auditing: enabled: false devops: enabled: false jenkinsMemoryLim: 2Gi jenkinsMemoryReq: 1500Mi jenkinsVolumeSize: 8Gi jenkinsJavaOpts_Xms: 512m jenkinsJavaOpts_Xmx: 512m jenkinsJavaOpts_MaxRAM: 2g events: enabled: false ruler: enabled: true replicas: 2 logging: enabled: false logsidecar: enabled: true replicas: 2 metrics_server: enabled: false monitoring: storageClass: "" prometheusMemoryRequest: 400Mi prometheusVolumeSize: 20Gi multicluster: clusterRole: none network: networkpolicy: enabled: false ippool: type: none topology: type: none openpitrix: store: enabled: false servicemesh: enabled: false kubeedge: enabled: false cloudCore: nodeSelector: {"node-role.kubernetes.io/worker": ""} tolerations: [] cloudhubPort: "10000" cloudhubQuicPort: "10001" cloudhubHttpsPort: "10002" cloudstreamPort: "10003" tunnelPort: "10004" cloudHub: advertiseAddress: - "" nodeLimit: "100" service: cloudhubNodePort: "30000" cloudhubQuicNodePort: "30001" cloudhubHttpsNodePort: "30002" cloudstreamNodePort: "30003" tunnelNodePort: "30004" edgeWatcher: nodeSelector: {"node-role.kubernetes.io/worker": ""} tolerations: [] edgeWatcherAgent: nodeSelector: {"node-role.kubernetes.io/worker": ""} tolerations: []
⑥启动k8s集群以及KubeSphere管理平台
命令:./kk create cluster -f k8s.yaml
⑦验证
- 安装完成
- 验证k8s集群
- 验证KubeSphere
命令:
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
访问:http://192.168.23.131:30880
账号: admin
密码: P@88w0rd
结语
至此,k8s集群及kubesphere容器管理平台就搭建完成了,关于更多k8s集群及kubesphere容器管理平台分享内容,我们下期见咯。。。