准备工作

克隆centos8命名为k1,将ip设为192.168.64.191

kubeasz项目(https://github.com/easzlab/kubeasz),下载Kubernetes项目,并解压

将ezdown文件拖入/root/目录

将kubeasz文件夹拖入/etc/目录

将images.gz压缩包拖入/root/目录

给ezdown文件添加执行权限

chmod +x ./ezdown

使用工具脚本下载离线文件,并安装Docker

默认下载最新推荐k8s/docker等版本(更多关于ezdown的参数,运行./ezdown 查看)

./ezdown -D

导入 docker 镜像,后面使用这些镜像用来测试 k8s:

docker load -i images.gz

docker images

将k1虚拟机关机

shutdown -h now

克隆k1命名为k2和k3,ip分别设为192.168.64.192、192.168.64.193

配置集群安装环境

启动kubeasz容器

./ezdown -S

设置参数允许离线安装

sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/kubeasz/example/config.yml 

配置免密登录其他服务器

ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa

ssh-copy-id 192.168.64.191

ssh-copy-id 192.168.64.192

ssh-copy-id 192.168.64.193

创建集群配置

cd /etc/kubeasz

chmod +x ezctl

./ezctl new cs1

配置服务器地址

vim /etc/kubeasz/clusters/cs1/hosts

 如果内存有限,可以只部署两台服务器进行测试

  • 主服务器既作为控制节点, 又作为工作节点
  • 减少etcd服务数量

执行一键安装

cd /etc/kubeasz

./ezctl setup cs1 all

ReplicationController

RC可以自动化维护多个pod,只需指定pod副本的数量,就可以轻松实现自动扩容缩容

当一个pod宕机,RC可以自动关闭pod,并启动一个新的pod替代它

下面是一个RC的部署文件,设置启动三个kubia容器:

cat <<EOF > kubia-rc.yml
apiVersion: v1
kind: ReplicationController        # 资源类型
metadata:   
  name: kubia                      # 为RC命名
spec:
  replicas: 3                      # pod副本的数量
  selector:                        # 选择器,用来选择RC管理的pod
    app: kubia                     # 选择标签'app=kubia'的pod,由当前RC进行管理
  template:                        # pod模板,用来创建新的pod
    metadata:
      labels:
        app: kubia                 # 指定pod的标签
    spec:
      containers:                  # 容器配置
      - name: kubia                # 容器名
        image: luksa/kubia         # 镜像
        imagePullPolicy: Never
        ports:
        - containerPort: 8080      # 容器暴露的端口
EOF

创建RC

RC创建后,会根据指定的pod数量3,自动创建3个pod

kubectl create -f kubia-rc.yml  #创建rc

kubectl get rc  #查看rc
----------------------------------------
NAME    DESIRED   CURRENT   READY   AGE
kubia   3         3         2       2m11s

kubectl get po  #查看pod   
------------------------------------------------------------------------------------------------------------------------------
NAME             READY   STATUS             RESTARTS   AGE    IP            NODE             NOMINATED NODE   READINESS GATES
kubia-fmtkw      1/1     Running            0          9m2s   172.20.1.7    192.168.64.192   <none>           <none>
kubia-lc5qv      1/1     Running            0          9m3s   172.20.1.8    192.168.64.192   <none>           <none>
kubia-pjs9n      1/1     Running            0          9m2s   172.20.2.11   192.168.64.193   <none>           <none>

pod容器扩容缩容

kubectl scale rc kubia --replicas=1   #pod缩容,剩1个
kubectl get po #查看pod

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐