介绍
(1)Play with Kubernetes 一个提供了在浏览器中使用免费 CentOS Linux 虚拟机的体验平台,其内部实际上是 Docker-in-Docker(DinD)技术模拟了多虚拟机/PC 的效果。
(2)Play with Kubernetes 平台有如下几个特色:
- 允许我们使用 github 或 dockerhub 账号登录
- 在登录后会开始倒计时,让我们有 4 小时的时间去实践(最好早上和晚上使用,网站容量达到上限时无法使用)
- K8s 环境使用 kubeadm 来部署(使用用 weave 网络)
- 平台共提供 5 台 centos7 设备供我们使用(docker 版本为 17.09.0-ce)
搭建K8S集群
进入页面后,左侧点击add new instance来创建K8S节点,会自动命名为node1,将做我们集群的主节点。
根据节点的ip地址,我们执行命令进行初始化:
kubeadm init --apiserver-advertise-address 192.168.0.13 --pod-network-cidr=10.244.0.0/16
初始化完成之后,界面会显示kubeadm join命令,这个用于后续node节点加入集群使用
接着还需要执行安装POD网络(我是用的是flannel),否则Pod之间无法通信。
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
最后我们执行kubectl get nodes查看一下主节点状态即可.
然后,我们陆续创建4个node,然后4个node均执行kubeadm join命令即可,类似如下命令:
kubeadm join 192.168.0.13:6443 --token opip9p.rh35kkvqzwjizely --discovery-token-ca-cert-hash sha256:9252e13d2ffd3569c40b02c477f59038fac39aade9e99f282a333c0f8c5d7b22
然后我们回到主节点上使用kubectl get nodes查询一下集群所有节点的部署状态。
K8S集群的使用
例如,使用yaml文件部署nginx服务(例如部署3个pod)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx-app.yaml
查看pod情况
kubectl get pods -o wide
然后我们再查询一下service状态,部署完成。
kubectl get service