天天看點

kubernetes簡介與基礎操作指令

kubernetes簡介與基礎操作指令

本專欄均為樓主個人了解,适合于初學者。能夠很快幫助0基礎的同學快速入門與落地一套k8s環境。

1.為什麼使用k8s

在閱讀本文章之前,建議了解docker。

在目前軟體環境下,即使是很小的公司會使用很多中間件,同時項目也會拆成很多微服務項目。例如樓主的公司,使用了redis,rabbitmq,elk中間件。在項目方面,把業務拆分成了6個微服務項目,同時還使用了線上預覽等開源項目。如果樓主使用docker釋出,這樣初步算下來就需要10多個docker容器。

那麼問題來了,這麼多docker容器,我該如何管理呢,是以k8s應運而生。

結論

k8s作用是對容器的編排與管理,提供了很多功能如:類似部署,擴容,監控,負載均衡,日志記錄等。

2.基礎概念

  • node:每一台k8s伺服器都被稱為一台node。
  • deployment:用于控制管理pod。
  • pod:k8s最小的組成部門,可以了解為一個容器,如docker容器。
  • master:k8s的主機,用于管理其他的node。
  • cluster:除了master的其他node都被稱為cluster,master可以控制其他的cluster。

3.k8s的重要元件

  • kubelet:Node 和 Pod 的控制功能。
  • kube-proxy :K8S 運作于每個 Node 上的網絡代理元件,用于服務發現和代理相關。
  • kubectl:用于運作Kubernetes叢集指令的管理工具。
以上内容了解即可,下文安裝時會有提及。

4.k8s常用指令

掌握以下指令,就可以初步操作k8s了。

kubectl get pods --all-namespaces 擷取所有命名空間
kubectl delete namespaces kubernetes-dashboard 删除命名空間
kubectl get clusterrolebinding  擷取clusterrolebinding使用者(角色與使用者的綁定關系)
kubectl delete clusterrolebinding dashboard-admin 删除binding
kubectl delete clusterrole            删除角色
kubectl get nodes -o yaml  擷取nodes詳細資訊
sudo kubectl logs kubernetes-dashboard-6dccb458d5-x7xft --namespace=kubernetes-dashboard 
 
 
systemctl status kubelet 檢視kubelet狀态
systemctl start kubelet  啟動kubelet 
systemctl daemon-reload && systemctl restart kubelet 重新開機kubelet
systemctl daemon-reload && systemctl stop kubelet  停止kubelet
journalctl -f -u kubelet.service/journalctl -xefu kubelet 檢視kubelet日志
 
 
kubectl drain nodename --force --ignore-daemonsets --delete-local-data
kubectl delete node nodename //去除節點
 
 
kubectl create -f  xxx.yaml  #建立pods 或 services
kubectl delete -f xxx.yaml  #删除 pods 或 services
kubectl delete pods --all --grace-period=0 --force  # 删除所有的pods
kubectl get services  #檢視應用被映射到節點的哪個端口
kubectl get pods   #檢視目前pod

删除k8s
kubeadm reset -f
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd