美文网首页小资料工程师乐园
k3s:单节点部署实战

k3s:单节点部署实战

作者: luffynoonepiece | 来源:发表于2021-02-01 16:21 被阅读0次

    1.前言

    身为小数据工程师平时常常会用到Kubernetes,对Pods,Ingress和Service都略懂一些,但是平时通过rancher的UI去操作k8s,方便是一方面,另一方面也忘记了很多指令,所以在资源有限的情况下,实践一次安装k3s,趁着还记得步骤先记录一下。

    2.什么是k3s

    在官网上,我发现这句话介绍地比较到位,copy之:


    “k3s是一个高可用的、经过CNCF认证的Kubernetes发行版,专为无人值守、资源受限、偏远地区或物联网设备内部的生产工作负载而设计。”

    https://www.rancher.cn/k3s/

    3.一键安装k3s

    curl -sfL https://get.k3s.io | sh -
    

    于是一个指令就完成安装了。。。

    4.命令别名设置

    但是常用的k8s命令是kubectl,k3s对应的则是k3s kubectl
    多少有些不习惯,基于模拟k8s的目的,我们可以

    # 在/usr/local/bin 为k3s kubectl设置别名
    cd /usr/local/bin
    alias kubectl='k3s kubectl'
    

    5.补全命令

    source <(kubectl completion bash)
    

    如果失败则需要提前安装bash-completion项目

    # for ubuntu
    apt-get update && apt-get install -y bash-completion
    

    然年再次执行前面的指令source <(kubectl completion bash)

    5.1成功后尝试

    # kubectl + tab键,如果没用可以多按几次tab。。。
    root@iZwz91n8ywv9zwlxo7knjuZ:~# kubectl
    annotate       completion     drain          logs           scale
    api-resources  config         edit           options        set
    api-versions   cordon         exec           patch          taint
    apply          cp             explain        plugin         top
    attach         create         expose         port-forward   uncordon
    auth           debug          get            proxy          version
    autoscale      delete         help           replace        wait
    certificate    describe       kustomize      rollout
    cluster-info   diff           label          run
    

    然后就可以测试
    查看当前运行的pod(其实还没有)

    kubectl get pod
    

    6.实例——以nginx服务为例

    • Deployment的yml档
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deploy
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx-cluster
      template:
        metadata:
          labels:
            app: nginx-cluster
        spec:
          containers:
          - name: nginx-cluster
            image: nginx
            imagePullPolicy: Always
            ports:
            - containerPort: 80
            resources:
              requests:
                cpu: 0.1
                memory: 500Mi
              limits:
                cpu: 0.3
                memory: 1024Mi
    
    • Service的yml档
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
      labels:
        app: nginx-service
    spec:
      type: NodePort
      selector:
        app: nginx-cluster
      ports:
      - port: 8000
        targetPort: 80
        nodePort: 30246
    

    使用kubectl create -f <yml>指令分别导入两个yml档
    再用kubectl get deploymentkubectl get svc去查看运行状况。

    最后访问
    http://<公网IP>:<设定的端口号>
    看到以下讯息说明成功了~

    nginx is running

    7.K8s国内源慢的问题

    不切换国内镜像是真的巨慢

    kubeadm源

    # Ubuntu 阿里云镜像
    apt-get update && apt-get install -y apt-transport-https
    curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
    cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
    deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
    EOF
    apt-get update
    apt-get install -y kubelet kubeadm kubectl
    

    以上


    蟹蟹

    相关文章

      网友评论

        本文标题:k3s:单节点部署实战

        本文链接:https://www.haomeiwen.com/subject/ofmazktx.html