赞
踩
安装kubernets环境破费周折,特此记录整个过程
第一步: VirtualBox安装CentOS7 64系统。用什么环境无所谓
(1)系统下载地址如下。下载CentOS-7-x86_64-Minimal-1908.iso就可以,DVD或者Everything太大了,用不着
http://mirrors.aliyun.com/centos/7/isos/x86_64/
(2)安装完成后,用系统账号登录进去,网络不通,我的机器上是,需要手动把网络配置修改为桥接模式,如下图。配置修改后重启机器。
(3)再次登录进去,执行命令dhclient
为本机动态分配一个ip地址,发现这个ip地址跟宿主机是一个号段的,先不管只要能访问网络就行。执行ip addr
命令就可以看到分配的地址了。配置启动自动化获取IP地址,修改文件/etc/sysconfig/network-scripts/ifcfg-enp0s3
设置里面的ONBOOT=yes
(4)yum镜像配置。默认官方的软件仓库,在国内使用太慢了,国内的镜像地址可选择性很多。具体替换镜像的方式如下:
# 1. 进入yum仓库配置未知
cd /etc/yum.repos.d/
# 2. 备份官方镜像
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 3. 下载163镜像文件。如果发现wget命令没有安装,使用yum install wget先安装wget
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 4. 生成缓存
yum makecache
# 5. update一下
yum -y update
# OK Done。
使用阿里云的镜像也是一样的,把上面的第3不下载163镜像换成下载阿里云镜像既可以。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
至此虚拟机已经安装完毕。
二、安装Docker
官方教程在此教程关键步骤摘录于此
# 安装必须依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置docker稳定版仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 设置docker 开机启动,并启动docker
sudo systemctl enable docker && systemctl start docker
# 测试hello_world镜像
sudo docker run hello-world
# 你会发现上面需要login,没有什么好说的,使用自己在https://hub.docker.com上注册的账号和地址即可
docker login
# 再次测试hello-wold
sudo docker run hello-world
已经安装完成,但是在测试hello-world时会发现特别慢,时因为docker的官方仓库在国内访问同样是非常慢的,因此我们也需要绑定国内的镜像。国内的镜像有http://hub-mirror.c.163.com
https://registry.docker-cn.com
以及阿里云的https://xxxxxx.mirror.aliyuncs.com
阿里云的配置参考配置阿里云私有镜像加速器
# 配置镜像地址
echo '{
"registry-mirrors":["http://hub-mirror.c.163.com"]
}' > /etc/docker/daemon.json
# 配置之后重启docker
systemctl restart docker
三、安装kubernetes Master以v1.14.2为例。因为学习是使用的是《Kubernets权威指南(第四版)》
(1)安装kubeadmin和相关工具
# 配置国内阿里云kubernets镜像
cd /etc/yum.repos.d/
touch kubernetes.repo
# 将下面的内容复制到kubernetes.repo文件中
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
# 安装 kubelet kubeadm kubectl
yum install -y kubelet-1.14.2 kubeadm-1.14.2 kubectl-1.14.2 --disableexcludes=kubernetes
# 启动kubelet
systemctl enable kubelet && systemctl start kubelet
(2)下载kubernets镜像
注意配置文件中的imageRepository, 我使用的是阿里云的镜像,不指定这个参数会使用谷歌的k8s.gcr.io,在国内无法使用
# 构造配置文件如下 touch init-config.yaml #文件内容如下,请自行复制 apiVersion: kubeadm.k8s.io/v1beta1 kind: ClusterConfiguration imageRepository: registry.aliyuncs.com/google_containers kubernetesVersion: v1.14.0 networking: podSubnet: "192.168.0.0/16" # 下载镜像 kubeadm config images pull --config=init-config.yaml # 会下载得到如下镜像 docker images REPOSITORY TAG IMAGE ID CREATED SIZE registry.aliyuncs.com/google_containers/kube-proxy v1.14.0 5cd54e388aba 8 months ago 82.1MB registry.aliyuncs.com/google_containers/kube-scheduler v1.14.0 00638a24688b 8 months ago 81.6MB registry.aliyuncs.com/google_containers/kube-apiserver v1.14.0 ecf910f40d6e 8 months ago 210MB registry.aliyuncs.com/google_containers/kube-controller-manager v1.14.0 b95b1efa0436 8 months ago 158MB registry.aliyuncs.com/google_containers/coredns 1.3.1 eb516548c180 10 months ago 40.3MB hello-world latest fce289e99eb9 11 months ago 1.84kB registry.aliyuncs.com/google_containers/etcd 3.3.10 2c4adeb21b4f 12 months ago 258MB registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 23 months ago 742kB
(3) 初始化Master
# 初始化, 仍然使用下载镜像是创建的配置文件
kubeadm init --config=init-config.yaml
等待安装安装成功后,会打印如下信息。得到如下截图后,说明Master安装完成,接着安装Node,并加入到Master。
(4)安装Node
重新配置一台虚拟机,安装docker, 以及kublet, kubeadm工具。一切准备工作完成后,开始如下的流程将Node加入到Master中
# 启动docker和kubelet 并配置开机启动
sudo systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
join到master
# 创建配置文件, join-config.yaml,内容如下。其中ip地址是刚刚启动成功的Master的地址
apiVersion: kubeadm.k8s.io/v1beta1
kind: JoinConfiguration
discovery:
bootstrapToken:
apiServerEndpoint: 192.168.*.*:6443
token: 6ch5h1.u7527dh7nqzeqz32
unsafeSkipCAVerification: true
tlsBootstrapToken: 6ch5h1.u7527dh7nqzeqz32
#join, 执行如下命令
kubeadm join --config=join-config.yaml
执行之后会得到如下图的显示
但很大的可能是执行上面的join命令后,一直卡着,说明Master机器上有防火墙,可以上Master机器将防火墙关闭,再执行join命令。centos防火墙配置
# 关闭防火墙
systemctl stop firewalld
# 也可以吧6443的端口加入防火墙,然后重新加载防火墙配置
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --reload
(5) 安装CNI网络插件
# 执行如下命令
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 |tr -d '\n')"
(6) 验证是否安装成功
kubectl get pods --all-namespaces
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。