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)設(shè)備內(nèi)部的生產(chǎn)工作負載而設(shè)計氏豌『碜茫”
3.一鍵安裝k3s
curl -sfL https://get.k3s.io | sh -
于是一個指令就完成安裝了。泵喘。泪电。
4.命令別名設(shè)置
但是常用的k8s命令是kubectl
,k3s對應(yīng)的則是k3s kubectl
多少有些不習(xí)慣纪铺,基于模擬k8s的目的相速,我們可以
# 在/usr/local/bin 為k3s kubectl設(shè)置別名
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
然后就可以測試
查看當(dāng)前運行的pod(其實還沒有)
kubectl get pod
6.實例——以nginx服務(wù)為例
- 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>指令分別導(dǎo)入兩個yml檔
再用kubectl get deployment
和kubectl get svc
去查看運行狀況烹棉。
最后訪問
http://<公網(wǎng)IP>:<設(shè)定的端口號>
看到以下訊息說明成功了~
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
以上
蟹蟹