kubernetes 菜鸟_菜鸟系列k8s——k8s快速入门(1)
k8s快速入門
1.快速創(chuàng)建k8s集群
點擊教程菜單 1. Create a Cluster -> Interactive Tutorial - Creating a Cluster
note:通過 Kubernetes 的命令行工具 kubectl 遠程管理集群
minikube start 創(chuàng)建集群
kubectl cluster-info 查看集群信息
Kubernetes master is running at https://172.17.0.15:8443
KubeDNS is running at https://172.17.0.15:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
kubectl get nodes 查看節(jié)點信息
NAME STATUS ROLES AGE VERSION
minikube Ready master 2m53s v1.13.3
2.部署應用
kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080
顯示信息
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/kubernetes-bootcamp created
這里我們通過 kubectl run 部署了一個應用,命名為 kubernetes-bootcamp --image 指定Docker 鏡像 --port 設置應用對外服務的端口
3.訪問應用
默認情況下,所有 Pod只能在集群內(nèi)部訪問。為了能夠從外部訪問應用,我們需要將容器的 8080 端口映射到節(jié)點的端口。
kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080
顯示信息
service/kubernetes-bootcamp exposed
查看services及對應的映射端口
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 443/TCP 9m47s
kubernetes-bootcamp NodePort 10.105.140.245 8080:31048/TCP 82s
kubernetes 是默認的 service,暫時不用考慮。kubernetes-bootcamp 是我們應用的 service,8080 端口已經(jīng)映射到 host01 的 31048 端口,端口號是隨機分配的
通過curl命令進行訪問
curl host01:30393
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-ccqz7 | v=1
4.Scale 應用
默認情況下應用只會運行一個副本,可以通過 kubectl get deployments查看副本數(shù)。
kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 1/1 1 1 2m
增加副本個數(shù)
kubectl scale deployments/kubernetes-bootcamp --replicas=3
deployment.extensions/kubernetes-bootcamp scaled
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 3/3 3 3 2m34s
減少副本個數(shù)
$ kubectl scale deployments/kubernetes-bootcamp --replicas=1
deployment.extensions/kubernetes-bootcamp scaled
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 1/1 1 1 3m51s
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-bootcamp-6c5cfd894b-9cn54 1/1 Running 0 41s
kubernetes-bootcamp-6c5cfd894b-ccqz7 1/1 Running 0 4m44s
kubernetes-bootcamp-6c5cfd894b-gnhgz 1/1 Running 0 41s
$ kubectl scale deployments/kubernetes-bootcamp --replicas=1
deployment.extensions/kubernetes-bootcamp scaled
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-bootcamp-6c5cfd894b-9cn54 1/1 Terminating 0 57s
kubernetes-bootcamp-6c5cfd894b-ccqz7 1/1 Running 0 5m
kubernetes-bootcamp-6c5cfd894b-gnhgz 1/1 Terminating 0 57s
4.滾動更新
當前應用使用的 image 版本為 v1,執(zhí)行如下命令將其升級到 v2:
$ kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
deployment.extensions/kubernetes-bootcamp image updated
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-bootcamp-5bf4d5689b-4k5lb 1/1 Running 0 3s
kubernetes-bootcamp-5bf4d5689b-b9szr 1/1 Running 0 4s
kubernetes-bootcamp-5bf4d5689b-sxxs5 1/1 Running 0 4s
kubernetes-bootcamp-5bf4d5689b-zftkx 1/1 Running 0 3s
kubernetes-bootcamp-6c5cfd894b-ccqz7 1/1 Terminating 0 6m25s
kubernetes-bootcamp-6c5cfd894b-r4mtd 1/1 Terminating 0 6s
kubernetes-bootcamp-6c5cfd894b-r6txw 1/1 Terminating 0 6s
kubernetes-bootcamp-6c5cfd894b-vnbd6 1/1 Terminating 0 6s
$ curl host01:30393
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-5bf4d5689b-zftkx | v=2
通過 kubectl get pods 可以觀察滾動更新的過程:v1 的 Pod 被逐個刪除,同時啟動了新的 v2 Pod。更新完成后訪問新版本應用。
如果要回退到 v1 版本也很容易,執(zhí)行 kubectl rollout undo 命令:
$ kubectl rollout undo deployments/kubernetes-bootcamp
deployment.extensions/kubernetes-bootcamp rolled back
$ curl host01:30393
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-pq7kv | v=1
原文出處:https://www.cnblogs.com/i-dandan/p/10907997.html
總結(jié)
以上是生活随笔為你收集整理的kubernetes 菜鸟_菜鸟系列k8s——k8s快速入门(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SANGFOR深信服AC调测
- 下一篇: Golang Fyne项目实战(含源码)