用K3s快速搭建单机容器环境

K3s,一个轻量的K8s。

不多废话,想详细了解的话,官网地址:https://www.rancher.cn/k3s/

安装

准备一台干净的CentOS 7机器,把如下安装脚本保存为k3s.sh:

##k3s.sh
#改国内yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#更新内核&软件
yum update -y
#######K3s默认将使用containerd作为容器环境,如果想使用docker,请取消下列注释。docker打包的镜像可以直接导入containerd,containerd也能从docker镜像仓库拉镜像。
#####安装docker-ce
#yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
#yum install -y yum-utils
#yum-config-manager --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
#yum install -y docker-ce docker-ce-cli containerd.io
#systemctl enable docker
#systemctl start docker
#修改docker源
#cat << EOF > /etc/docker/daemon.json
#{
#    "registry-mirrors":["https://3laho3y3.mirror.aliyuncs.com"]
#}
#EOF
#systemctl daemon-reload
#systemctl restart docker
#####安装docker结束
#关firewalld防火墙
systemctl stop firewalld
systemctl disable firewalld
#安装k3s,如果启用docker作为容器环境,请使用注释掉的那行替代这一行
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
#curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -s - --docker

shell执行

sh k8s.sh

安装完成后,可以执行k3s check-config检查主机是否满足条件。若不满足可调整内核参数后再执行。(根据情况问度娘)

如此简单,k3s环境就部署好了。可以直接使用kubectl命令查看状态。(实际上是k3s kubectl的别名)

测试

跑个测试的应用:

将下面内容保存为deploy.yaml

##deploy.yaml
#deployment
kind: Deployment
apiVersion: apps/v1
metadata:
  name: test
  namespace: default
  labels:
    app: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
        - name: test
          image: nginx:alpine
          ports:
            - name: tcp-80
              containerPort: 80
              protocol: TCP
          resources: {}
          imagePullPolicy: IfNotPresent
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  progressDeadlineSeconds: 600
---
#service
kind: Service
apiVersion: v1
metadata:
  name: test
  namespace: default
  labels:
    app: test
spec:
  ports:
    - name: http-80
      protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30010
  selector:
    app: test
  type: NodePort

shell执行

kubectl apply -f deploy.yaml

稍等片刻,使用你的机器,访问http://{ip}:30010/

很好,看到nginx的欢迎页面了。😊

posted @ 2022-01-26 00:57  sslyc  阅读(1021)  评论(0编辑  收藏  举报