VMware安装all-in-one模式的kubesphere(K8s)

为了练习Kubernets管理命令和相关知识,在自己笔记本电脑上搭建一个Kubernets环境,选择使用国产的kubekey(kk)工具安装,简单记录一下安装过程。

参考资料:
https://kubesphere.io/zh/docs/v3.4/quick-start/all-in-one-on-linux/
https://github.com/kubesphere/kubekey/blob/master/docs/config-example.md

准备虚拟机

准备好CentOS 7.9虚拟机,禁止使用swap区。
虚拟机资源建议配置为 :4c,6G内存,40G硬盘空间,cpu资源太少,有些pod会报资源不足,无法运行起来。
yum update更新CentOS系统。
禁止selinux和防火墙。

修改主机名和hosts文件。

虚拟机安装和准备过程参考我之前写的安装教程:

https://blog.csdn.net/ljflinux/article/details/140916747

配置安装环境

安装相关软件包:

yum install -y tree sysstat net-tools yum-utils bridge-utils bind-utils psmisc vim wget curl xeye readline readline-devel autoconf jq socat conntrack ebtables ipset

安装docker(也可以不安装,kk会自动下载docker或containerd)。
需要编辑,进行镜像仓库的加速:

vim/etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://dockerpull.com",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.awsl9527.cn"
    ]
}

并重启docker服务:

systemctl daemon-reload && sudo systemctl restart docker

下载安装工具kk

先去GitHub查看一下kk最新的稳定版本:
https://github.com/kubesphere/kubekey/releases

我安装的时候最新稳定版是v3.1.6,下载kk到当前目录:

curl -sfL https://get-kk.kubesphere.io | VERSION=v3.1.6 sh -

查看kk支持的kubernets版本列表,根据自己的需要选择要安装的kubernets版本:

./kk version --show-supported-k8s

设置kk安装环境为国内环境(会使用阿里云的镜像源),不过现在docker hub放开国内访问了,所以不设置这个环境变量也能够安装成功:
export KKZONE=cn

使用kk生成安装配置模板文件config-sample.yaml:

./kk create config --with-kubernetes v1.28.13 --with-kubesphere v3.4.1

编辑config-sample.yaml配置文件:
参考说明:https://github.com/kubesphere/kubekey/blob/master/docs/config-example.md

vim config-sample.yaml

apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
  name: k8s-aio
spec:
  hosts:
  - {name: k8s, address: 192.168.152.21, internalAddress: 192.168.152.21, user: root, password: "Root@123"}
  # - {name: node2, address: 172.16.0.3, internalAddress: 172.16.0.3, user: ubuntu, password: "Qcloud@123"}
  roleGroups:
    etcd:
    - k8s
    control-plane:
    - k8s
    worker:
    - k8s
  controlPlaneEndpoint:
    ## Internal loadbalancer for apiservers
    # internalLoadbalancer: haproxy

    domain: lb.kubesphere.local
    address: ""
    port: 6443
  kubernetes:
    version: v1.28.13
    clusterName: cluster.k8s
    autoRenewCerts: true
    containerManager: docker
  etcd:
    type: kubekey
  network:
    plugin: calico
    kubePodsCIDR: 10.233.64.0/18
    kubeServiceCIDR: 172.16.0.0/18
    ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    multusCNI:
      enabled: false
  registry:
    privateRegistry: ""
    namespaceOverride: ""
    registryMirrors: []
    insecureRegistries: []
  addons: []



---
apiVersion: installer.kubesphere.io/v1alpha1
kind: ClusterConfiguration
metadata:
  name: ks-installer
  namespace: kubesphere-system
  labels:
    version: v3.4.1
spec:
  persistence:
    storageClass: ""
  authentication:
    jwtSecret: ""
  local_registry: ""
  # dev_tag: ""
  etcd:
    monitoring: false
    endpointIps: localhost
    port: 2379
    tlsEnable: true
  common:
    core:
      console:
        enableMultiLogin: true
        port: 30880
        type: NodePort
    # apiserver:
    #  resources: {}
    # controllerManager:
    #  resources: {}
    redis:
      enabled: false
      enableHA: false
      volumeSize: 2Gi
    openldap:
      enabled: false
      volumeSize: 2Gi
    minio:
      volumeSize: 20Gi
    monitoring:
      # type: external
      endpoint: http://prometheus-operated.kubesphere-monitoring-system.svc:9090
      GPUMonitoring:
        enabled: false
    gpu:
      kinds:
      - resourceName: "nvidia.com/gpu"
        resourceType: "GPU"
        default: true
    es:
      # master:
      #   volumeSize: 4Gi
      #   replicas: 1
      #   resources: {}
      # data:
      #   volumeSize: 20Gi
      #   replicas: 1
      #   resources: {}
      enabled: false
      logMaxAge: 7
      elkPrefix: logstash
      basicAuth:
        enabled: false
        username: ""
        password: ""
      externalElasticsearchHost: ""
      externalElasticsearchPort: ""
    opensearch:
      # master:
      #   volumeSize: 4Gi
      #   replicas: 1
      #   resources: {}
      # data:
      #   volumeSize: 20Gi
      #   replicas: 1
      #   resources: {}
      enabled: true
      logMaxAge: 7
      opensearchPrefix: whizard
      basicAuth:
        enabled: true
        username: "admin"
        password: "admin"
      externalOpensearchHost: ""
      externalOpensearchPort: ""
      dashboard:
        enabled: false
  alerting:
    enabled: false
    # thanosruler:
    #   replicas: 1
    #   resources: {}
  auditing:
    enabled: false
    # operator:
    #   resources: {}
    # webhook:
    #   resources: {}
  devops:
    enabled: false
    jenkinsCpuReq: 0.5
    jenkinsCpuLim: 1
    jenkinsMemoryReq: 4Gi
    jenkinsMemoryLim: 4Gi
    jenkinsVolumeSize: 16Gi
  events:
    enabled: false
    # operator:
    #   resources: {}
    # exporter:
    #   resources: {}
    ruler:
      enabled: true
      replicas: 2
    #   resources: {}
  logging:
    enabled: false
    logsidecar:
      enabled: true
      replicas: 2
      # resources: {}
  metrics_server:
    enabled: true
  monitoring:
    storageClass: ""
    node_exporter:
      port: 9100
      # resources: {}
    # kube_rbac_proxy:
    #   resources: {}
    # kube_state_metrics:
    #   resources: {}
    # prometheus:
    #   replicas: 1
    #   volumeSize: 20Gi
    #   resources: {}
    #   operator:
    #     resources: {}
    # alertmanager:
    #   replicas: 1
    #   resources: {}
    # notification_manager:
    #   resources: {}
    #   operator:
    #     resources: {}
    #   proxy:
    #     resources: {}
    gpu:
      nvidia_dcgm_exporter:
        enabled: false
        # resources: {}
  multicluster:
    clusterRole: none
  network:
    networkpolicy:
      enabled: false
    ippool:
      type: none
    topology:
      type: none
  openpitrix:
    store:
      enabled: false
  servicemesh:
    enabled: false
    istio:
      components:
        ingressGateways:
        - name: istio-ingressgateway
          enabled: false
        cni:
          enabled: false
  edgeruntime:
    enabled: false
    kubeedge:
      enabled: false
      cloudCore:
        cloudHub:
          advertiseAddress:
            - ""
        service:
          cloudhubNodePort: "30000"
          cloudhubQuicNodePort: "30001"
          cloudhubHttpsNodePort: "30002"
          cloudstreamNodePort: "30003"
          tunnelNodePort: "30004"
        # resources: {}
        # hostNetWork: false
      iptables-manager:
        enabled: true
        mode: "external"
        # resources: {}
      # edgeService:
      #   resources: {}
  gatekeeper:
    enabled: false
    # controller_manager:
    #   resources: {}
    # audit:
    #   resources: {}
  terminal:
    timeout: 600
  zone: ""

使用kk安装kubesphere

使用配置文件安装k8s,网络正常情况下30-50分钟安装完成:

./kk create cluster -f config-sample.yaml

安装完毕后的管理登录地址(ip是虚拟机的ip):
Console: http://192.168.152.21:30880
Account: admin
Password: P@88w0rd     # 第一次web管理界面登录时需要修改密码。
 

安装完毕后的运行状态:

[root@k8s kubekey]# kubectl get nodes
NAME   STATUS   ROLES                  AGE   VERSION
k8s    Ready    control-plane,worker   61m   v1.28.13
[root@k8s kubekey]#
[root@k8s kubekey]#
[root@k8s kubekey]# kubectl get pods -A
NAMESPACE                      NAME                                               READY   STATUS    RESTARTS      AGE
kube-system                    calico-kube-controllers-7bbcc5b6fb-p5xrm           1/1     Running   1 (27m ago)   60m
kube-system                    calico-node-x75q6                                  1/1     Running   1 (27m ago)   60m
kube-system                    coredns-575bbdcdb5-9rzfz                           1/1     Running   1 (27m ago)   60m
kube-system                    coredns-575bbdcdb5-hjgwj                           1/1     Running   1 (27m ago)   60m
kube-system                    kube-apiserver-k8s                                 1/1     Running   1 (27m ago)   61m
kube-system                    kube-controller-manager-k8s                        1/1     Running   1 (27m ago)   61m
kube-system                    kube-proxy-8xrdl                                   1/1     Running   1 (27m ago)   60m
kube-system                    kube-scheduler-k8s                                 1/1     Running   1 (27m ago)   61m
kube-system                    metrics-server-95d9bdd76-8fxz9                     1/1     Running   1 (27m ago)   58m
kube-system                    nodelocaldns-gl586                                 1/1     Running   1 (27m ago)   60m
kube-system                    openebs-localpv-provisioner-64b88c795c-ps96w       1/1     Running   1 (27m ago)   60m
kube-system                    snapshot-controller-0                              1/1     Running   1 (27m ago)   57m
kubesphere-controls-system     default-http-backend-68686bdb6-lvf2v               1/1     Running   1 (27m ago)   55m
kubesphere-controls-system     kubectl-admin-7df4b6b5b6-fwfpn                     1/1     Running   1 (27m ago)   43m
kubesphere-monitoring-system   alertmanager-main-0                                2/2     Running   0             28m
kubesphere-monitoring-system   kube-state-metrics-65c69d6b64-cxz2g                3/3     Running   3 (27m ago)   52m
kubesphere-monitoring-system   node-exporter-7l9qw                                2/2     Running   2 (27m ago)   52m
kubesphere-monitoring-system   notification-manager-deployment-85757c9bfb-hcz9l   2/2     Running   2 (27m ago)   46m
kubesphere-monitoring-system   notification-manager-operator-859d858c57-26wnz     2/2     Running   2 (27m ago)   51m
kubesphere-monitoring-system   prometheus-k8s-0                                   2/2     Running   0             51m
kubesphere-monitoring-system   prometheus-operator-77d99c696f-8z4nm               2/2     Running   2 (27m ago)   52m
kubesphere-system              ks-apiserver-7f7798d54f-w2hgd                      1/1     Running   1 (27m ago)   55m
kubesphere-system              ks-console-b5cb9b478-xbng2                         1/1     Running   1 (27m ago)   55m
kubesphere-system              ks-controller-manager-6c97df4459-57rkd             1/1     Running   1 (27m ago)   55m
kubesphere-system              ks-installer-865fc48886-vttp4                      1/1     Running   1 (27m ago)   60m
[root@k8s kubekey]#

web管理界面:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值