
kubernetes环境搭建&集群安装
1、安装Docker这些个步骤我在之前的docker笔记中都有过记录,但是,温故是好事,再来动手做一遍1.1 安装gcc环境:yum -y install gccyum -y install gcc- c++1.2 更换镜像源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-c
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)