小资料工程师乐园

k3s:单节点部署实战

2021-02-01  本文已影响0人  luffynoonepiece

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服务为例

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
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

以上


蟹蟹
上一篇下一篇

猜你喜欢

热点阅读