******注意,实验结束请立即删除云主机UHost,负载均衡ULB和容器云UK8S集群,节省费用******
******注意2,实验未结束且短期内不会继续实验,也请删除上述所有资源。下次实验时重新创建******
实验步骤 一)
实验步骤 二)
实验步骤 三)
实验步骤 四)
实验步骤 五)
12月11日
云主机UHost、容器云UK8S、私有网络VPC
云主机UHost、镜像库UHub、负载均衡ULB、容器云UK8S、基础网络UNet
K8S理论:
请参考 https://www.yuque.com/serviceup/cloud-native-talks/k8s-roadmap-primary
K8S实训:
更多内容请参考 https://kubernetes.io/docs/tutorials/
**************作业1:请将K8S“集群”页面截图,并插入实验报告***************
wget https://storage.googleapis.com/kubernetes-release/release/v1.19.0/bin/linux/amd64/kubectl
chmod +x kubectl
sudo mv kubectl /usr/local/bin/ (root用户:mv kubectl /usr/bin/)
kubectl version -o json
在概览中查看“外网凭证”,并复制凭证内容。
在云主机中创建~/.kube文件夹,然后创建~/.kube/config文件,并将凭证内容粘贴到该文件中。
kubectl version -o json
,可以看到除了刚才的client信息,server信息也能打印了。**************作业2:请将到这一步的kubectl version -o json输出信息页面截图,并插入实验报告***************
kubectl cluster-info //打印集群信息
kubectl get nodes //打印节点信息
kubectl get pods //打印pod信息
kubectl get deployments //打印应用部署信息
kubectl get services //打印service信息
kubectl create deployment webapp --image=uhub-edu.service.ucloud.cn/cloud_computing/static_site
webapp是deployment的名字,可以随意。也就是说,我们创建了一个webapp部署,部署的内容是包含一个静态网页的docker;部署过程中打包了一个pod,包含了该应用
echo -e "\n\e[92mStarting Proxy. After starting it will not output a response. Please click the first Terminal Tab\n"; kubectl proxy
你应该看到“Starting to serve on 127.0.0.1:8001”,表示代理设置成功
export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n}}{{end}}')
echo Name of the Pod: $POD_NAME //如果这一步没有输出,说明$POD_NAME没有获得pod名称,可以把kubectl get pods得到的pod名字直接赋给$POD_NAME。
curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME/proxy/
可以看到网页的html输出,说明应用部署成功
**************作业3:请将上面最后一个命令输出的信息截图,并插入实验报告***************
kubectl get rs
可以看到只有一个副本,也就是之前我们手动部署的那个
kubectl get pods -o wide
可以看到pod部署的NODE的ip信息,正是集群中的一个node。k8s自动选择了这个node进行部署。
kubectl scale deployments/webapp --replicas=10
kubectl get pods -o wide
可以看到此时有10个运行webapp的pod,运行在集群中的4个node节点上(为什么不是5个?答案最后揭晓)
**************作业4:请将上述有10个pod的打印信息截图,并插入实验报告***************
kubectl expose deployment webapp --type=LoadBalancer --port=80
kubectl get services
**************作业5:请将kubectl get services输出信息截图、并将浏览器地址栏和网页内容一起截图,并插入实验报告***************
kubectl delete service webapp
kubectl delete deployment webapp