1. 搭建docker
。卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
- 安装依赖包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
- 添加yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 查看docker-ce 版本
yum list docker-ce --showduplicates|sort -r
- 更新yum源 ,安装docker-ce
yum makecache fast
指定docker-re版本号方式为docker-ce-xxx版本号
yum install -y docker-ce-18.06.1.ce-3.el7
- 设置开机自启,启动
systemctl enable docker
systemctl start docker
- 镜像加速
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://hub-mirror.c.163.com"
]
}
EOF
- 重启
systemctl daemon-reload
systemctl restart docker
2. 安装k8s
。 关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
- 配置k8s国内源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
- 查看所有版本
yum list kubelet --showduplicates | sort -r
- 安装k8s 镜像
yum install -y kubelet-1.13.1 kubeadm-1.13.1 kubectl-1.13.1 kubernetes-cni-0.6.0
- 启动k8s
systemctl enable kubelet && systemctl start kubelet
- 测试k8s
kubectl get nodes
出现 The connection to the server localhost:8080 was refused - did you specify the right host or port? 就为安装成功
2.1 搭建k8s集群
- 修改hosts 文件
cat >> /etc/hosts << EOF
172.27.9.131 master
172.27.9.136 node01
172.27.9.140 node02
EOF
- 分别修改主机名字
cat > /etc/hostname << EOF
node1
EOF
- 重启
- 在mater上创建一个文件夹–>进入文件夹 -->创建集群配置文件(用命令生成模版)
mkdir /root/working && cd /root/working
kubeadm config print init-defaults ClusterConfiguration > kubeadm.conf
vi kubeadm.conf
。需要修改的内容如下
advertiseAddress: 172.16.112.128 #本主机地址
imageRepository: registry.cn-beijing.aliyuncs.com/imcto #修改下载地址
kubernetesVersion: v1.13.1 # 修改版本号
podSubnet: "10.244.0.0/16" #设置内部子网
- 查看需要的镜像和拉取镜像
kubeadm config images list --config kubeadm.conf
kubeadm config images pull --config ./kubeadm.conf
- 初始化k8s环境
kubeadm init --config ./kubeadm.conf
- 保存初始化信息
。集群配置:执行以下命令
。mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config
其他node加入master执行以下命令
kubeadm join 172.16.112.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:0cbbf55da96f24bb524f3c904ecffacaf10357db29e57f5aa068384ae4e90550
- 下载kube-flannel.yml
wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11/Documentation/kube-flannel.yml
- 配置内网
kubectl apply -f kube-flannel.yml
2.2 配置node节点
- 把master
/etc/kubernetes/admin.conf
复制到node节点下面
scp /etc/kubernetes/admin.conf root@node01:/etc/kubernetes/
- 执行配置信息
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
- 把node加入集群中
kubeadm join 172.16.112.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:0cbbf55da96f24bb524f3c904ecffacaf10357db29e57f5aa068384ae4e90550
- 配置node网络,拷贝master的flannel配置文件到node中
scp /root/working/kube-flannel.yml root@node01:~
- 在node中分别启动flannel网络
kubectl apply -f kube-flannel.yml
2.3 测试k8s部署(mysql)
- 部署mysql ,创建mysql-rc.yaml 复制一下代码
cat > mysql-rc.yaml1 <<EOF
apiVersion: v1
kind: ReplicationController # 副本控制器RC
metadata:
name: mysql # RC 的名称,全局唯一
spec:
replicas: 1 # 副本期待数量
selector:
app: mysql # 符合目标的Pod拥有此标签
template: # 根据此磨吧创建Pod的副本(实例)
metadata:
labels:
app: mysql # Pod 副本拥有的标签,对应的RC的Selector
spec:
containers: # Pod 内容器的定义部分
- name: mysql # 容器的名称
image: mysql # 容器对应的Docker Image
ports:
- containerPort: 3306 # 容器应用监听的端口号
env: # 注入容器的环境变量
- name: MYSQL_ROOT_PASSWORD # 这里第一次写错了 MySQL_ROOT_PASSWORD
value: "123456"
EOF
- 执行创建
kubectl create -f mysql-rc.yaml
- 查看创建状态以及过程
kubectl get pods
kubectl describe pod mysql