Ubuntu16.04下部署安装k8s
1. 配置:
环境:ubuntu 16.04
节点
192.168.25.70 master
192.168.25.244 node3
2.系统设置(master和node3都执行)
1)禁用swap
swapoff -a
2)关闭防火墙
sudo ufw disable
3)禁用Selinux
apt install selinux-utils setenforce 0
4)在两个节点的/etc/hosts配置如下
192.168.25.244 node3 192.168.25.70 master
5)安装docker
apt-get install docker.io -y
6)启动docker服务
systemctl enable docker systemctl start docker systemctl status docker
尽量配置docker加速,否则拉取镜像会出现超时。
docker加速教程
**
3.安装kubectl,kubelet,kubeadm( master 和 node3 节点都执行)
**
1)添加秘钥
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
如果不能执行可以通过 https://packages.cloud.google.com/apt/doc/apt-key.gpg 下载pgp文件(注:用可以访问谷歌的电脑下载)
下载完成之后放到Ubuntu16.04中的文件夹中,使用命令apt-key add apt-key.gpg加载。
2)添加Kubernetes软件源
1、国内的源(本次搭建使用此源)
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main EOF
2、安装:kubelet kubeadm kubectl
apt-get update && apt-get install -y kubelet kubeadm kubectl systemctl enable kubelet
注:安装成功后先不要执行systemctl start kubelet。
**
4、配置Master(只在master执行)
**
1)在master节点 /etc/profile 下面增加如下环境变量
export KUBECONFIG=/etc/kubernetes/admin.conf
然后执行(重起kubelet)
systemctl daemon-reload systemctl restart kubelet
2)在master节点上执行
kubeadm init --kubernetes-version=v1.15.1 --pod-network-cidr 10.244.0.0/16
–kubernetes-version 通过kubectl version 可以查看到(本次搭建使用的是1.15.1)
可能会提示拉取镜像超时,是因为无法访问谷歌,执行kubeadm config images list,可以查看所需镜像的版本,然后手动把所需要的镜像拉取下来
下面的时我需要的镜像(以下镜像node3节点也需要):
手动拉取上述镜像:
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.15.1 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.15.1 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.15.1 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.15.1 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10 docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1
把上述镜像重新进行tag(node3也需要执行):
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.15.1 k8s.gcr.io/kube-apiserver:v1.15.1 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.15.1 k8s.gcr.io/kube-controller-manager:v1.15.1 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.15.1 k8s.gcr.io/kube-scheduler:v1.15.1 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.15.1 k8s.gcr.io/kube-proxy:v1.15.1 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
然后重新执行以下初始化命令:
kubeadm init --kubernetes-version=v1.15.1 --pod-network-cidr 10.244.0.0/16
出现以下界面表示成功
初始化成功以后,集群还无法使用,上图红框是需要执行的操作,执行完以后才能使用集群。
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
2)接下来配置flannel网络,可以到 https://github.com/coreos/flannel 找到此处
将下面命令复制下来在命令行中执行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
3)查看pod:
kubectl get pods -n kube-system
使用如下命令查看master是否配置成功
kubectl get nodes
如果出现ready则表示成功
此时master已经搭建成功!!
**
5.将node节点加入到集群中
**
1.生成token(在master节点执行)
kubeadm token create
2.生成认证(在master节点执行)
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
3.加入集群(node节点执行)(注:命令就是创建master节点时,所提到的要在node3中执行的那条命令)
kubeadm join 192.168.25.70:6443 --token tdu953.b74wa05832h6x7yn \ --discovery-token-ca-cert-hash sha256:fab411b7d324dce4cf476f190d336e0dacceba5d8074b586b3e6a72002d8c383
node3节点加入成功!!!
4.master节点查看
可以查看node3节点是否已经添加成功
kubectl get nodes
执行完发现node3节点的状态是Ready,因此添加成功
6.可能会出现的问题
**
1)执行kubectl get nodes即可查看节点
如果出现The connection to the server localhost:8080 was refused - did you specify the right host or port?报错,出现这个问题的原因是kubectl命令需要使用kubernetes-admin来运行,解决方法如下,将主节点中的【/etc/kubernetes/admin.conf】文件拷贝到从节点相同目录下,然后配置环境变量:
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile source ~/.bash_profile
再次执行,即可查看节点~~~~
2)coredns没有启动:
解决办法:
可以docker ps -a查看这个容器id,然后通过docker logs 容器id查看日志。
进行如下步骤:
1)编辑
kubectl edit cm coredns -n kube-system
2)删除
删除loop,保存退出,这个时候稍加等候,这两个容器就自动起来了。
若没有启动,把pod删除,k8s会自动再创建,coredns处于运行状态。
删除命令:
kubectl delete pod coredns-58b5ccf64b-lkzfv -n kube-system
如果coredns处于运行状态,但是kube-flannel-ds处于Init:0/1状态可以执行如下命令解决问题
systemctl start kubelet
执行完之后发现处于运行状态了
终于,这个问题解决了!!!
注:如若发现有误,欢迎提醒与指导
- Ubuntu 16.04部署FTP 安装vsftpd
- 0、ubuntu16.04安装部署kvm
- Docker在Ubuntu16.04上安装和部署Apache Storm
- ubuntu16.04 docker环境安装部署
- Ubuntu16.04 部署安装Docker容器 & 注意事项
- Ubuntu 16.04+.Net Core+Docker+Nginx安装部署
- Ubuntu16.04安装部署监控系统Zabbix2.4
- open edx: ubuntu 16.04原生native 安装部署
- ubuntu16.04 安装java web 运行环境过程 及部署项目过程
- Ubuntu 16.04 LTS安装部署zookeeper-3.5.1-alpha
- Ubuntu16.04安装部署solr7的图文详细教程
- Ubuntu16.04安装xampp及部署Testlink
- vagrant使用virtualbox安装ubuntu16.04搭建lemp部署laravel项目
- Ubuntu16.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
- ubuntu16.04安装及配置tomcat,IDEA集成tomcat及部署web项目,IDEA通过阿里云镜像加速maven项目创建
- ubuntu16.04部署安装
- ubuntu16.04 docker环境安装部署
- hadoop 3.1.1 分布式安装部署 ubuntu16.04
- Ubuntu16.04+nvidia显卡驱动+cuda安装