kubectl自動補全功能設置
執行:
一、yum install -y bash-completion
二、source <(kubectl completion bash)
三、echo "source <(kubectl completion bash)" >> ~/.bashrcnode
一、建立
nginx-test:控制器的名稱,默認是deployment控制器
--image:nginx:1.14 鏡像
--port=80:暴露的端口
--replicas=3:啓動3個副本nginx
kubectl run nginx-test --image=nginx:1.14 --port=80 --replicas=3docker
二、查看
kubectl get pods
kubectl get pods,deployment,replicasetjson
kubectl api-resources 查看簡寫的命令
好比:service 就是cs
componentstatuses就是csapi
三、如果有異常
kubectl describe pods nginx-test-795c895f4c-zpr87bash
四、刪除
kubectl delete deploy/nginx-testapp
五、建立好控制器後,將 它發佈出去
--port=80:集羣內部之間訪問的端口
-type=NodePort:指定這個類型,外部能訪問
--target-port=80:容器的端口
--name=nginx-service:指定service名稱curl
kubectl expose deployment nginx-test --port=80 --type=NodePort --target-port=80 --name=nginx-serviceide
查看:
ep:Endpoints工具
查看service 被轉發到哪一個node上
安裝ipvsadm 這個工具
一、yum install ipvsadm -y
二、查看:
三、訪問:
http://192.168.1.23:34234/
http://192.168.1.24:34234/
端口(34234):
過程:訪問http://192.168.1.23:34234/ 會經過service 幫你轉發到集羣端口,集羣端口會經過ipvsadm 幫你轉發到 3個副本上
四、查看日誌:
每一個節點上都要加上:
vi /opt/kubernetes/cfg/kube-proxy 新增以下(啓用lvs,就須要配置一下,可能會有問題):
--masquerade-all=true \
再重啓 systemctl restart kube-proxy
由kube-proxy 動態幫你完成,轉發到哪一個pod上
五、更新image的版本,如今nginx 版本爲1.14,先須要更新到1.15版本
指定控制器名稱
nginx-test:容器的名字,可根據kubectl describe deployment/nginx-test 查看
[root@docker ~]# kubectl set image deployment/nginx-test nginx-test=nginx:1.15
六、再訪問curl http://192.168.1.23:34234 能夠看到nginx版本變爲1.15
七、更新有問題須要回滾
kubectl rollout history deployment/nginx-test
kubectl rollout undo deployment/nginx-test 回滾到上一個版本
八、再次驗證:http://192.168.1.23:34234 能夠看到nginx版本變爲1.14
九、刪除
若是刪除pod,控制器會幫你再新建一個pod,因此須要刪除控制器
kubectl delete deploy/nginx-test
kubectl delete svc/nginx-service
十、能夠進入pod
kubectl exec -it pod名稱 bash
YAML是專門用來寫配置文件的語言,很是簡潔和強大,使用比json更方便。它實質上是一種通用的數據串行化格式。後文會說明定義YAML文件建立Pod和建立Deployment。
YAML語法規則:
詳解
apiVersion: apps/v1 :指定api版本,此值必須在kubectl apiversion中 ;查看版本 kubectl api-versions;v1是穩定版,v1beta1就是測試版
kind: Deployment:指在apps/v1 這個接口中指定資源的類型;Deployment是控制器
metadata: 指的資源Deployment(控制器)的元數據/屬性
name: nginx-deployment 指定控制器名稱
namespace: default 指定命名空間
labels: 指定標籤
app: nginx
spec 指定這個資源(Deployment)內容
replicas: 3 設置3個副本
template: 如下就是容器的設置
metadata: 關聯到上面的標籤
labels:
app: nginx
spec:
containers:
執行:kubectl apply -f deployment.yaml
部署service,將應用發佈出去
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
type: NodePort
ports:
執行:kubectl apply -f deployment-service.yaml
查看:
驗證:curl 192.168.1.23:45915 -I
回滾:經過命令回滾
能夠寫在一個yaml配置文件裏,須要用---來分割:
說明
一、第1和第2 :控制器和pod綁定
二、第2和第3: service須要和pod綁定
三、第3和第4:要設置同樣的標籤
導出現有的ymal文件:[root@docker demo]# kubectl get deployment/nginx-deployment -o=yaml --export > my-deploy.yaml