菜鸟系列k8s——k8s快速⼊门(1)
k8s快速⼊门
1.快速创建k8s集群
点击教程菜单 1. Create a Cluster -> Interactive Tutorial - Creating a Cluster
note:通过 Kubernetes 的命令⾏⼯具 kubectl 远程管理集群
minikube start 创建集群
kubectl cluster-info 查看集群信息
Kubernetes master is running at 172.17.0.15:8443
科学哲学KubeDNS is running at 172.17.0.15:8443/api/v1/namespaces/kube-system/rvices/kube-dns:dns/proxy
kubectl get nodes 查看节点信息
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. U kubectl run --generator=run-pod/v1 or kubectl create instead. deployment.apps/kubernetes-bootcamp created宾阳中学
这⾥我们通过 kubectl run 部署了⼀个应⽤,命名为 kubernetes-bootcamp
西藏兵什么鱼最聪明--image 指定Docker 镜像
--port 设置应⽤对外服务的端⼝
3.访问应⽤
默认情况下,所有 Pod只能在集群内部访问。为了能够从外部访问应⽤,我们需要将容器的 8080 端
⼝映射到节点的端⼝。
kubectl expo deployment/kubernetes-bootcamp --type="NodePort" --port 8080
显⽰信息
rvice/kubernetes-bootcamp expod
查看rvices及对应的映射端⼝
kubectl get rvices
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9m47s
kubernetes-bootcamp NodePort 10.105.140.245 <none> 8080:31048/TCP 82s
kubernetes 是默认的 rvice,暂时不⽤考虑。kubernetes-bootcamp 是我们应⽤的 rvice,8080 端⼝已经映射到 host01 的 31048 端⼝,端⼝号是随机分配的
通过curl命令进⾏访问
curl host01:30393
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-ccqz7 | v=1
4.Scale 应⽤
默认情况下应⽤只会运⾏⼀个副本,可以通过 kubectl get deployments查看副本数。
kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 1/1 1 1 2m
增加副本个数
kubectl scale deployments/kubernetes-bootcamp --replicas=3
$ kubectl get deployments爱爱的文章
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-bootcamp 3/3 3 3 2m34s
减少副本个数
$ kubectl scale deployments/kubernetes-bootcamp --replicas=1
$ 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
$ 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,执⾏如下命令将其升级到 v2:
$ kubectl t image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
$ 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 版本也很容易,执⾏ kubectl rollout undo 命令:
怎么压缩文件包
$ kubectl rollout undo deployments/kubernetes-bootcamp
$ curl host01:30393
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-6c5cfd894b-pq7kv | v=1