访问下面链接可以免费搭建kubernetes集群
https://kubernetes.io/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/
通过kubectl远程管理集群
minikube start // 开启
kubectl get nodes // 获取节点的kubernetes集群
hostname // 集群名
kubectl cluster-info // 查询集群信息
演示:
$ minikube start
* minikube v1.2.0 on linux (amd64)
* Creating none VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
* Configuring environment for Kubernetes v1.15.0 on Docker 18.09.5
- kubelet.resolv-conf=/run/systemd/resolve/resolv.conf
* Pulling images ...
* Launching Kubernetes ...
* Configuring local host environment ...
* Verifying: apiserver proxy etcd
scheduler controller dns
* Done! kubectl is now configured to use "minikube”
$kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready master 3m1s v1.15.0
$ hostname
minikube
$kubectl cluster-info
Kubernetes master is running at https://172.17.0.25:8443
KubeDNS is running at https://172.17.0.25:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
1)部署应用(名为kubernetes-bootcamp)
$ kubectl run kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1 --port=8080
Pod是容器的集合,通常会将紧密相关的一组容器放到一个Pod中,同一个Pod中的所有容器共享IP地址和Port空间,也就是说它们在一个network namespace中。Pod是Kubernetes调度的最小单位,同一Pod中的容器始终被一起调度。
查看当前的Pod
kubectl get pods
2)访问应用
为了能够从外部访问应用,需要将容器的8080端口映射到节点的端口。
kubectl expose deployment/kubernetes-bootcamp \
--type="NodePort" \
--port 8080
查看应用被映射到节点的哪个端口
kubectl get services
8080端口已经映射到host01的32320端口,端口号是随机分配的,可以执行如下命令访问应用
curl host01:32320
3)Scale应用
查看副本数
kubectl get deployments
增加副本数(3个副本轮询处理,这样就实现了负载均衡)
kubectl scale deployments/kubernetes-bootcamp --replicas=3
减少副本数
kubectl scale deployments/kubernetes-bootcamp --replicas=2
4)滚动更新
当前应用使用的image版本为v1,执行如下命令将其升级到v2
kubectl set image deployments/kubernetes-bootcampkubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
要回退到v1版本
kubectl rollout undo deployments/kubernetes-bootcamp