kubernetes环境搭建&集群安装

1、安装Docker

这些个步骤我在之前的docker笔记中都有过记录,但是,温故是好事,再来动手做一遍

1.1 安装gcc环境:

yum -y install gcc

yum -y install gcc- c++

1.2 更换镜像源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新yum软件包索引:

$ yum makecache fast

1.3 查看当前镜像源中支持的Docker版本

$ yum list docker-ce --showduplicates

可以看到有很多可供下载的版本:

1.4 安装特定版本的Docker-ce

        必须指定 --setopt=obsoletes=0, 否则yum会自动安装更高版本:选择18.06.3.ce-3.el7版本,一方面是因为这个版本比较稳定,另外一方面是因为这个版本把很多参数都做了初始化

$ yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y

1.5 为docker添加配置文件

        Docker在默认情况下使用的Cgroup Driver为cgroupfs,而Kubernetes推荐使用systemd来代替cgroupfs

$ mkdir /etc/docker
$ cat <<EOF > /etc/docker/daemon.json
{
  "exec-opts":["native.cgroupdriver=systemd"],
  "registry-mirrors":["https://kn0t2bca.mirror.aliyuncs.com"]
}
EOF

1.6 启动Docker

#启动Docker
systemctl start docker
#查看docker状态
systemctl status docker
#设置Docker为开机自启
systemctl enable docekr 

2、安装Kubernetes组件

      由于Kubernetes的镜像源是在国外的,速度比较慢,这里我们切换成国内的镜像源

cat > /etc/yum.repos.d/kubernetes.repo << EOF 
[kubernetes] 
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 
enabled=1 
gpgcheck=0 
repo_gpgcheck=0 
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg 
       https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg 
EOF

    ● 安装kubeadm、kubelet和kubectl

yum install --setopt=obsoletes=0 kubeadm kubelet kubectl -y

    ● 配置kubelet的cgroup

# 编辑/etc/sysconfig/kubelet 添加下面的配置
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

    ● 设置kubelet开机自启

$ systemctl enable kubelet

3、安装Kubernetes集群 

    3.1 集群安装

       Kubernetes集群是由许多Kubernetes组件构成的,其实也就是安装这些组件的过程,使用kubeadm方式进行安装,底层就会自动去下载这些组件所对应的镜像。但是我们如果不搭梯子的话,连接不上外国的Kubernetes仓库网站,所以先从阿里云的镜像仓库下载我们需要的镜像文件(使用打标签的形式换成K8s官方的名字),最后再把原始阿里云仓库的镜像删除。

   ● 先准备好镜像清单,选择比较稳定的版本:

# 定义一个需要下载镜像的列表
[root@master ~]# images=(
kube-apiserver:v1.17.4
kube-controller-manager:v1.17.4
kube-scheduler:v1.17.4
kube-proxy:v1.17.4
pause:3.1
etcd:3.4.3-0
coredns:v1.6.5
)

定义一个循环,没循环一次,就在阿里的镜像仓库中去拉取一个对应的一个组件的镜像文件

# 先拉取镜像,然后把标签从阿里改成k8s官方仓库,第三步删除
for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
k8s.gcr.io/$imageName
    docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done

   3.2 集群初始化

         ● 在master节点上执行

# 创建集群
kubeadm init \
--apiserver-advertise-address=192.168.88.100 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

经过验证,根据master节点的提示进行操作,在master节点上创建必要文件,然后将两台node节点加入集群中,使用命令查看

kubectl get nodes

可以看到已经有三个节点加入了集群,但是由于还没有配置网络网络插件还没安装,他们的状态都是NotReady 

3.3 安装网络插件

      Kubernetes支持多种网络插件,比如flannel、calico、canal等等,这里我们选择flannel。

# 下面代码在master节点执行 插件使用的是DaemonSet的控制器,它会在每个节点上都运行
# 获取fannel的配置文件
$ wget https://docs.projectcalico.org/v3.20/manifests/calico.yaml --no-check-certificate
$ kubectl apply -f calico.yaml
$ kubectl get nodes

安装完成后,kubernetes集群中的节点就会显示是ready的状态

 至此,Kubernetes集群环境搭建完成了。

3.4 服务部署

     接下来在Kubernetes集群中部署一个Nginx程序,用于测试一下集群是否在正常工作

# 部署Nginx (通过Master节点操作)
$ kubectl create deployment nginx --image=nginx:1.14-alpine
# 暴露端口
$ kubectl expose deployment nginx --port=88 --type=NodePort
# 查看服务状态
$ kubectl get pods,svc

现在可以看到: 已经运行了一个pod

 查看service:

 注意这个31199,这是暴露给外界的端口号,外界的浏览器可以通过集群的node节点的IP+端口,对nginx进行访问,打开系统浏览器:nodeIP:端口号可以访问:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值