Katacoda Kubernetes系列场景一:Launch Single Node Kubernetes Cluster

6 篇文章 0 订阅
2 篇文章 0 订阅

最近在学习Kubernetes(k8s)的使用,发现了一个好网站katacoda,可以在浏览器的沙盒环境中学习k8s的使用和概念,真的是非常友好了。因此做下笔记,以后可以回顾。

这是该系列入门的第一篇,使用的是Minikube。Minikube可以在本地虚拟机中运行一个单节点的Kubernetes集群,以便用户学习。更多可以关注 https://github.com/kubernetes/minikube

Step 1 启动Minikube

在katacoda中,Minikube已经被预先安装并且被配置好了。使用以下命令查看版本

minikube version

使用以下命令启动Minkube

minikube start --wait=false

Step 2 集群信息

我们可以通过kubectlCLI 与集群交互,这是管理k8s集群并且运行应用的主要方式。

集群的详细信息和健康状况可以从如下命令得到

kubectl cluster-info

可以看到如下结果

Kubernetes master is running at https://172.17.0.14:8443
KubeDNS is running at https://172.17.0.14:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

如果想查看节点信息,可以使用如下命令

kubectl get nodes

可以看到如下结果

NAME       STATUS   ROLES    AGE     VERSION
minikube   Ready    master   2m39s   v1.17.3

该命令显示所有能承载我们应用的节点。此时我们只有1个节点,并且可以看到其状态是Ready,表示已经准备好接收应用的部署。

Step 3 部署容器

有一个运行的Kubernetes集群后,就可以部署容器了。

使用kubectl run命令将容器部署到集群中。

kubectl create deployment first-deployment --image=katacoda/docker-http-server

其中,kubectrl create deployment表示创建具有指定名称的deployment部署。

deployment NAME --image=image [--dry-run]

部署的状态可以从运行的Pods中被查看

kubectl get pods

结果如下

NAME                               READY   STATUS    RESTARTS   AGE
first-deployment-666c48b44-74w54   1/1     Running   0          7m2s

Pods简介

在Kubernetes集群中,Pod是所有业务类型的基础,也是K8S管理的最小单位级,它是一个或多个容器的组合。这些容器共享存储、网络和命名空间,以及如何运行的规范。在Pod中,所有容器都被同一安排和调度,并运行在共享的上下文中。对于具体应用而言,Pod是它们的逻辑主机,Pod包含业务相关的多个应用容器。

更多可见K8S实战基础知识之POD


当容器运行时,根据不同的需要,可以通过不同的网络选项暴露。例如NodePort,给容器提供了一个动态的端口。

kubectl expose deployment first-deployment --port=80 --type=NodePort

运行该命令可以找到暴露的端口

export PORT=$(kubectl get svc first-deployment -o go-template='{{range.spec.ports}}{{if .nodePort}}{{.nodePort}}{{"\n"}}{{end}}{{end}}')

之后便可以访问

curl host01:$PORT

Step 4 Dashboard

Dashboard是k8s的用户界面,可以用如下命令开启

kubectl addons enable dashboard

通过/opt/kubenetes-dashboard.yaml文件部署dashboard(可以看到yaml是一种很好的部署方式)

apiVersion: v1
kind: Namespace
metadata:
  labels:
    addonmanager.kubernetes.io/mode: Reconcile
    kubernetes.io/minikube-addons: dashboard
  name: kubernetes-dashboard
  selfLink: /api/v1/namespaces/kubernetes-dashboard
spec:
  finalizers:
  - kubernetes
status:
  phase: Active
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: kubernetes-dashboard
  name: kubernetes-dashboard-katacoda
  namespace: kubernetes-dashboard
spec:
  ports:
  - port: 80
    protocol: TCP
    targetPort: 9090
    nodePort: 30000
  selector:
    k8s-app: kubernetes-dashboard
  type: NodePort

通过该命令,可以查看dashboard是否成功启动

kubectl get pods -n kubernetes-dashboard -w

从yaml文件中可以看到,端口被暴露在30000,在katacoda中,可以从如下网址查看

https://2886795278-30000-elsy04.environments.katacoda.com/

参考资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值