暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

NUC11 安装 Ubuntu 20.04.4 LTS安装部署K8s Kubernetes

NUC俱乐部 2022-03-23
2721

NUC安装Ubuntu18.04系统

  • 基本信息

  • 前言

  • 安装过程


    • 配置Ubuntu18.04系统镜像

    • 安装系统

    • 解决系统字体过大、分辨率低的问题

    • 测试

  • 其他软件安装


基本信息

  • Time:2022/3/23

  • 使用NUC版本:猎豹峡谷NUC11PAHi5

  • (另外加上自己配的 内存、固态)

  • Ubuntu系统:Ubuntu20.04.4 LTS

前言

许多开发者需要在Ubuntu上搭建K8s,最适合跑微服务架构,

一、什么是k8s,k8s都有什么功能?
k8s是一个docker容器管理工具

官方NUC镜像只适配到7代 现在11代我们直接用桌面版20.4


安装过程

  • 1.先制作系统安装盘

首先下载镜像烧录软件:UltraISO

然后下载系统镜像 :ubuntu-20.04.4-desktop-amd64.iso

烧写镜像:

打开UltraISO,
点击文件-打开-选择Ubuntu18.04 的ISO镜像文件 
-点击启动-写入硬盘…-写入 ;

安装系统

  1. 先开机按F2,进bios, 找到security boot, 禁用

  2. 将写入Ubuntu18.04系统的U盘,插到NUC上,NUC开机,按F10,

  3. 选择U盘通道;

  4. 所有方式都选择英文方式(选择中文的话会出现小bug,可以接受)

  5. 键盘布局,【继续】

  6. 更新和其他软件,取消【安装Ubuntu时下载更新】选项,点击【继续】。

6. 在 安装类型上 我是选择了第一个,把所有的空间都安装Ubuntu,


7. 按提示走 设置系统

8. 安装完成,进入桌面。

安装k8s环境初始化

    #关闭swap
    swapoff -a
    rm -f swap.img
    vim etc/fstab
    # swap.img


    #开启ip转发
    vim etc/sysctl.conf
    net.ipv4.ip_forward=1


    #查看状态
    sysctl -p


    安装docker

    step1:安装依赖

      sudo apt-get update
      sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

      step 2: 安装GPG证书

        curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

        Step 3: 写入软件源信息

          sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

          Step 4: 更新并安装Docker-ce

            sudo apt-get -y update
            apt install -y docker-ce

            Step 5: 安装docker-compose

              apt install -y docker-compose

              将docker设置为开机自启

                systemctl enable docker


                安装k8s---添加证书

                  curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 

                  添加apt源

                    cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
                    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
                    EOF


                    apt-get update

                    查看可安装版本

                      apt-cache madison kubelet

                      安装指定版本

                        apt-get install -y kubelet=1.18.4-00 kubeadm=1.18.4-00 kubectl=1.18.4-00

                        设置开机启动

                          sudo systemctl enable kubelet && sudo systemctl start kubelet

                          查看所需镜像

                            kubeadm config images list --kubernetes-version=v1.18.4


                            k8s.gcr.io/kube-apiserver:v1.18.4
                            k8s.gcr.io/kube-controller-manager:v1.18.4
                            k8s.gcr.io/kube-scheduler:v1.18.4
                            k8s.gcr.io/kube-proxy:v1.18.4
                            k8s.gcr.io/pause:3.2
                            k8s.gcr.io/etcd:3.4.3-0
                            k8s.gcr.io/coredns:1.6.7


                            从新地址下载镜像

                              docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.4
                              docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.4
                              docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.4
                              docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.4
                              docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2
                              docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0
                              docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7


                              为镜像重新打tag

                                docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.18.4 k8s.gcr.io/kube-apiserver:v1.18.4
                                docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.18.4 k8s.gcr.io/kube-controller-manager:v1.18.4
                                docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.18.4 k8s.gcr.io/kube-scheduler:v1.18.4
                                docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.18.4 k8s.gcr.io/kube-proxy:v1.18.4
                                docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
                                docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
                                docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7

                                初始化master节点

                                  kubeadm init --kubernetes-version=v1.18.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

                                  初始化完成之后会出现提示,Your Kubernetes control-plane has initialized successfully!,之后将后面的内容保存到一个文件中,先不添加节点检查集群状态是否正常。

                                    kubectl get componentstatus

                                    添加网络组件

                                      kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

                                      检查状态

                                        kubectl get pods -n kube-system -l app=flannel
                                          kubectl get nodes

                                          为node的角色打标签

                                            kubectl label node node01 node-role.kubernetes.io/node=node

                                            部署Prometheus+Grafana

                                              #获取相关文件
                                              git clone https://gitee.com/liugpwwwroot/k8s-prometheus-grafana.git
                                              #部署Node-exporter组件
                                              kubectl create -f k8s-prometheus-grafana/node-exporter.yaml
                                              #部署prometheus组件
                                              kubectl create -f k8s-prometheus-grafana/prometheus/rbac-setup.yaml
                                              kubectl create -f k8s-prometheus-grafana/prometheus/configmap.yaml
                                              kubectl create -f k8s-prometheus-grafana/prometheus/prometheus.deploy.yml
                                              kubectl create -f k8s-prometheus-grafana/prometheus/prometheus.svc.yml
                                              #部署grafana组件
                                              kubectl create -f k8s-prometheus-grafana/grafana/grafana-deploy.yaml
                                              kubectl create -f k8s-prometheus-grafana/grafana/grafana-svc.yaml
                                              kubectl create -f k8s-prometheus-grafana/grafana/grafana-ing.yaml
                                              #查看相应服务
                                              kubectl get svc -n kube-system


                                              之后暴露端口进行访问即可

                                              如果单机master跑prometheus和grafana的话可能会因为调度问题导致处于pending状态,这时候需要修改允许master部署pod

                                                kubectl taint nodes --all node-role.kubernetes.io/master-


                                                文章转载自NUC俱乐部,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                评论