centos7 亲测-搭建docker和k8s

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
  1. 安装依赖包
yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2
  1. 添加yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 查看docker-ce 版本
yum list docker-ce --showduplicates|sort -r
  1. 更新yum源 ,安装docker-ce
yum makecache fast

指定docker-re版本号方式为docker-ce-xxx版本号

yum install -y docker-ce-18.06.1.ce-3.el7
  1. 设置开机自启,启动
systemctl enable docker
systemctl start docker
  1. 镜像加速
cat  > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com"
  ]
}
EOF

  1. 重启
systemctl daemon-reload
systemctl restart docker

2. 安装k8s

关闭swap

swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab 
  1. 配置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

  1. 查看所有版本
yum list kubelet --showduplicates | sort -r 
  1. 安装k8s 镜像
yum install -y kubelet-1.13.1 kubeadm-1.13.1 kubectl-1.13.1 kubernetes-cni-0.6.0
  1. 启动k8s
systemctl enable kubelet && systemctl start kubelet
  1. 测试k8s
kubectl get nodes

出现 The connection to the server localhost:8080 was refused - did you specify the right host or port? 就为安装成功

2.1 搭建k8s集群

  1. 修改hosts 文件
cat >> /etc/hosts << EOF
172.27.9.131    master
172.27.9.136    node01
172.27.9.140    node02
EOF
  1. 分别修改主机名字
cat > /etc/hostname << EOF
node1
EOF
  1. 重启
  2. 在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"  #设置内部子网
  1. 查看需要的镜像和拉取镜像
kubeadm config images list --config kubeadm.conf
kubeadm config images pull --config ./kubeadm.conf
  1. 初始化k8s环境
kubeadm init --config ./kubeadm.conf
  1. 保存初始化信息
    在这里插入图片描述
    集群配置:执行以下命令
    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
    
    1. 下载kube-flannel.yml
    wget https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11/Documentation/kube-flannel.yml
    
    1. 配置内网
    kubectl apply -f kube-flannel.yml
    

2.2 配置node节点

  1. 把master /etc/kubernetes/admin.conf 复制到node节点下面
scp /etc/kubernetes/admin.conf root@node01:/etc/kubernetes/
  1. 执行配置信息
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
  1. 把node加入集群中
kubeadm join 172.16.112.128:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:0cbbf55da96f24bb524f3c904ecffacaf10357db29e57f5aa068384ae4e90550
  1. 配置node网络,拷贝master的flannel配置文件到node中
scp /root/working/kube-flannel.yml root@node01:~
  1. 在node中分别启动flannel网络
kubectl apply -f kube-flannel.yml

2.3 测试k8s部署(mysql)

  1. 部署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

  1. 执行创建
kubectl create -f mysql-rc.yaml
  1. 查看创建状态以及过程
kubectl get pods
kubectl describe pod mysql
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不出家的和尚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值