k3s:單節(jié)點部署實戰(zhàn)

1.前言

身為小數(shù)據(jù)工程師平時常常會用到Kubernetes,對Pods,Ingress和Service都略懂一些,但是平時通過rancher的UI去操作k8s,方便是一方面,另一方面也忘記了很多指令,所以在資源有限的情況下,實踐一次安裝k3s,趁著還記得步驟先記錄一下。

2.什么是k3s

在官網(wǎng)上,我發(fā)現(xiàn)這句話介紹地比較到位,copy之:


“k3s是一個高可用的、經(jīng)過CNCF認證的Kubernetes發(fā)行版,專為無人值守、資源受限、偏遠地區(qū)或物聯(lián)網(wǎng)設備內(nèi)部的生產(chǎn)工作負載而設計?!?/p>

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

然年再次執(zhí)行前面的指令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://<公網(wǎng)IP>:<設定的端口號>
看到以下訊息說明成功了~

nginx is running

7.K8s國內(nèi)源慢的問題

不切換國內(nèi)鏡像是真的巨慢

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

以上


蟹蟹
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容