k3s

k3s的使用笔记

k3s的一些命令:

  • kubectl get node 查看node
  • kubectl create -f [文件名].yaml 运行配置文件
  • kubectl get pod -o wide 查看运行的pod
  • kubectl get service 查看service
  • kubectl get deploy 查看deploy
  • kubectl get svc -o wide 查看端口
  • kubectl apply -f [文件名].yaml 更新配置文件
  • kubectl delete pod [pod名称] 删除pod
    访问pod:
    node ,pod,service都有不同的虚拟ip,启动了3个pod后,我们可以通过service的端口进行访问,service会在三个pod做轮询操作,service寻找pod是动态的,删除所有pod再新建依然可以使用。

使用deploy可以弹性的管理pod,扩容或缩容。
此demo的使用步骤:

  • 1、将springboot项目通过docker制作成镜像,上传到aliyun容器镜像仓库
  • 2、准备两台服务器,master服务器,和Agent服务器。
    在master服务器里下载k3s的脚本
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -

然后通过cat /var/lib/rancher/k3s/server/node-token命令查看master服务器里的k3s token,把该token保留。
在Agent服务器里输入

curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=https://[master服务器的内网ip地址]:6443 K3S_TOKEN=[master的token] sh -

到这时我们就完成了集群的搭建。
我们可以在master上用kubectl get node来查看有哪些node。

3、接下来我们使用yaml文件的配置方式来操作pod,deployment,service。
pod.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: pod1 //pod名称
  labels:
    name: pod1 //pod的标签名称
spec:
  containers:
  - name: pod1
    image: nginx //镜像名称
    resources:
      limits:
        memory: "128Mi"
        cpu: "300m"
    ports:
      - containerPort: 80
---
apiVersion: v1
kind: Pod
metadata:
  name: pod2
  labels:
    name: pod1
spec:
  containers:
  - name: pod2
    image: nginx
    resources:
      limits:
        memory: "128Mi"
        cpu: "300m"
    ports:
      - containerPort: 80 //镜像内的启动端口

deploy.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deploy //deploy的名称
spec:
  replicas: 1 //弹性的pod数量
  selector:
    matchLabels:
      name: pod1
  template:
    metadata:
      labels:
        name: pod1
    spec:
      containers:
      - name: myapp
        image: nginx
        resources:
          limits:
            memory: "128Mi"
            cpu: "300m"
        ports:
          - containerPort: 80

service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: myapp-mvc
spec:
  type: NodePort
  selector:
    name: pod1
  ports:
  - port: 2000 //service端口
    targetPort: 80 //镜像端口
    nodePort: 30001 //noPort端口

使用kubectl create -f [文件名].yaml运行配置文件
4、按照pod,service,deploy的顺序运行下来输入kubectl get pod会发现3个pod成功运行,此时删除掉一个,deploy会自动补充一个上去。

5、我们此时的项目只能在内网内进行访问,如果想通过外网进行访问服务,则需要阿里云的CLB负载均衡,反向代理ip和端口,完成外网的访问。

6、配置完负载均衡后,我们在页面访问发现线程池和pod一直在轮询变化,完成了对外网访问和负载均衡。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容