准备工作
克隆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