介绍一个在线K8S练习平台
2023-12-25 21:33:07
是不是有很多小伙伴想学习k8s,但是又没有机器去练习。使用自己的笔记本电脑或者主机只能搭建单机版本的k8s来练习。
现在福利来了,给大家介绍一个在线多节点k8s练习平台:Play with Kubernetes。
Play with Kubernetes 介绍
- Play with Kubernetes 一个提供了在浏览器中使用免费 CentOS Linux 虚拟机的体验平台,其内部实际上是 Docker-in-Docker(DinD)技术模拟了多虚拟机/PC 的效果。
- Play with Kubernetes 平台有如下几个特色:
- 允许我们使用 github 或 dockerhub 账号登录
- 在登录后会开始倒计时,让我们有 4 小时的时间去实践
- K8s 环境使用 kubeadm 来部署(使用用 weave 网络)
- 平台共提供 5 台 centos7 设备供我们使用(docker 版本为 24.0.2)
搭建 Kubernetes 集群
- 首先访问网站:https://labs.play-with-k8s.com/,并使用github 或 dockerhub 账号进行登录。
- 登录后点击页面上的 Start 按钮,我们便拥有一个自己的实验室环境。
3. 单击左侧的“Add New Instance” 来创建第一个 Kubernetes 集群节点。它会自动将其命名为“node1”,这个将作为我们群集的主节点。
可以看到有三条命令,分别是:初始化master节点、初始化网络、部署nginx pod。
4. node1 执行第一条命令
kubeadm init --apiserver-advertise-address $(hostname -i) --pod-network-cidr 10.5.0.0/16
执行完毕后,可以看到输出中存在这么一条命令:
这条命令用于后续添加node节点,在node节点中执行。先复制出来,后续使用
5. node1 执行第二条命令
此命令是安装 Pod 网络(这里我们使用 flannel),否则 Pod 之间无法通信。
kubectl apply -f https://raw.githubusercontent.com/cloudnativelabs/kube-router/master/daemonset/kubeadm-kuberouter.yaml
- 点击“Add New Instance” 创建node2,并执行第四步复制出来,执行添加节点的的命令
kubeadm join 192.168.0.13:6443 --token ezgizu.pi14arjxq8pyzstm \
--discovery-token-ca-cert-hash sha256:83feca790dfbd89d515f28deb4fce1401078cccc95981fdd63895c340697d90e
执行完毕后,切换到node1,执行kubectl get nodes
查看已经部署好的节点:
[node1 ~]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready control-plane 4m19s v1.27.2
node2 Ready <none> 23s v1.27.2
- 部署nginx,node1执行第三条命令。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/application/nginx-app.yaml
检查pod 是否运行,执行kubectl get pods -o wide
:
[node1 ~]$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
my-nginx-cbdccf466-c2744 1/1 Running 0 30s 10.5.1.2 node2 <none> <none>
my-nginx-cbdccf466-sqc2z 1/1 Running 0 30s 10.5.1.3 node2 <none> <none>
my-nginx-cbdccf466-wl8kq 1/1 Running 0 30s 10.5.1.4 node2 <none> <none>
检查service,执行kubectl get service
:
[node1 ~]$ kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7m3s
my-nginx-svc LoadBalancer 10.97.165.15 <pending> 80:31661/TCP 78s
此时,可以看到集群内部ip为10.97.165.15,在任意节点中执行 curl 10.97.165.15
可看到有以下输出:
[node2 ~]$ curl 10.97.165.15
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
至此,一个master,一个node节点的k8s就已经搭建好了,并且部署了一个nginx deployment。
后续想要自己部署其他服务,也可以在这上面进行练习。每次都会有四个小时的连接时间。
文章来源:https://blog.csdn.net/efheoihfe/article/details/135209109
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!