1.涉及技術及中間件
OpenResty
docker容器
k8s容器編排
keepalived
haproxy
mongodb
minio
ELK
openresty(基於 [Nginx](http://openresty.org/cn/nginx.html) 與 Lua 的高性能 Web 平臺)
redis
nginx
2.安裝方式
#所有k8s集羣節點均安裝基礎組件docker容器
#k8s集羣三主多從部署,三主通過keepalived、haproxy做高可用,從節點通過連接keepalived的虛擬ip跟主節點通訊
#redis三主三從集羣部署在三臺服務器
#mongodb一主一從一仲裁部署在三臺服務器上
#nginx部署兩臺服務器
3.Docker
Docker的啓動與停止
啓動docker:sudo systemctl start docker
停止docker:sudo systemctl stop docker
重啓docker:sudo systemctl restart docker
查看docker狀態:sudo systemctl status docker
開機啓動:sudo systemctl enable docker
查看docker概要信息:docker info
查看docker幫助文檔:docker --help
\#刪除exited狀態的容器
##sudo docker rm $(sudo docker ps -qf status=exited)
#容器創建時指定docker重啓通過參數--restart=always容器自動啓動docker run --restart=always 如果創建時未指定 --restart=always ,可通過update 命令docker update --restart=always xxx
3、 批量操作容器
docker 啓動所有的容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker 關閉所有的容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker 刪除所有的容器
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
#刪除所有鏡像~~~~sudo docker rmi $(docker images -q)
kubectl
source <(kubectl completion bash) #命令補全
啓動-停止-重啓-狀態
master
systemctl daemon-reload
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
etcd
systemctl start etcd
systemctl stop etcd
systemctl restart etcd
client
systemctl start kube-proxy -l
systemctl start docker -l
systemctl start kubelet -l
status
systemctl status etcd
systemctl status kube-apiserver -l
systemctl status kube-controller-manager -l
systemctl status kube-scheduler
systemctl status kube-proxy -l
systemctl status docker -l
systemctl status kubelet -l
常用命令
kubectl get pods
kubectl get rc
kubectl get service
kubectl get componentstatuses
kubectl get endpoints
kubectl cluster-info
kubectl create -f redis-master-controller.yaml
kubectl delete -f redis-master-controller.yaml
kubectl delete pod nginx-772ai
kubectl logs -f pods/heapster-xxxxx -n kube-system
#查看日誌
kubectl scale rc redis-slave --replicas=3
#修改RC的副本數量,來實現Pod的動態縮放
etcdctl cluster-health
#檢查網絡集羣健康狀態
etcdctl --endpoints=https://192.168.71.221:2379 cluster-health
#帶有安全認證檢查網絡集羣健康狀態
etcdctl member list
etcdctl set /k8s/network/config '{ "Network": "10.1.0.0/16" }'
etcdctl get /k8s/network/config
基礎進階
kubectl get services kubernetes-dashboard -n kube-system
#查看所有service
kubectl get deployment kubernetes-dashboard -n kube-system
#查看所有發佈
kubectl get pods --all-namespaces
#查看所有pod
kubectl get pods -o wide --all-namespaces #查看所有pod的IP及節點
kubectl get pods -n kube-system | grep dashboard
kubectl describe service/kubernetes-dashboard --namespace="kube-system"
kubectl describe pods/kubernetes-dashboard-349859023-g6q8c --namespace="kube-system"
#指定類型查看
kubectl describe pod nginx-772ai
#查看pod詳細信息
kubectl scale rc nginx --replicas=5
# 動態伸縮
kubectl scale deployment redis-slave --replicas=5
#動態伸縮
kubectl scale --replicas=2 -f redis-slave-deployment.yaml
#動態伸縮
kubectl exec -it redis-master-1033017107-q47hh /bin/bash
#進入容器
kubectl label nodes node1 zone=north
#增加節點lable值 spec.nodeSelector: zone: north #指定pod在哪個節點
kubectl get nodes -lzone
#獲取zone的節點
kubectl label pod redis-master-1033017107-q47hh role=master
#增加lable值 [key]=[value]
kubectl label pod redis-master-1033017107-q47hh role-
#刪除lable值
kubectl label pod redis-master-1033017107-q47hh role=backend --overwrite
#修改lable值
kubectl rolling-update redis-master -f redis-master-controller-v2.yaml
#配置文件滾動升級
kubectl rolling-update redis-master --image=redis-master:2.0
#命令升級
kubectl rolling-update redis-master --image=redis-master:1.0 --rollback
#pod版本回滾