K8s单master群集部署--kubeamd方式+harbor仓库

Posted 可乐卷儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8s单master群集部署--kubeamd方式+harbor仓库相关的知识,希望对你有一定的参考价值。


环境

服务器ip服务
master192.168.35.40docker、kubeadm、kubelet、kubectl、flannel
node1192.168.35.10docker、kubeadm、kubelet、kubectl、flannel
node2192.168.35.20docker、kubeadm、kubelet、kubectl、flannel
harbor192.168.35.30docker、docker-compose、harbor-offline-v1.2.2

一、kubeadm 部署单master集群

操作位置:三台节点(master+node)

1、关闭防火墙、核心防护(三台k8s节点)

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
swapoff -a		##关闭交换分区
sed -ri 's/.*swap.*/#&/' /etc/fstab  	##永久关闭交换分区
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done		##为kube-proxy开启ipvs的前提需要加载以下的内核模块

2、修改主机名、添加映射、加载ipvs模块

hostnamectl set-hostname master
su
hostnamectl set-hostname node1
su
hostnamectl set-hostname node2
su
vim /etc/hosts
192.168.35.40 master
192.168.35.10 node1
192.168.35.20 node2
192.168.35.30 harbor
将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf 
sysctl -p
systemctl restart network
echo "nameserver 114.114.114.114" >> /etc/resolv.conf		##添加dns
yum clean all && yum makecache

3、安装Docker、kubeadm、kubelet

1、安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2	##安装依赖环境
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo			##docker源
yum install -y docker-ce		##安装社区版
systemctl start docker			##开启docker
systemctl enable docker			##开启开启启动
systemctl daemon-reload			##重载
systemctl restart docker		##重启
systemctl enable docker && systemctl start docker

docker --version ##查看版本

2、安装kubeadm、kubelet、kubectl

#指定安装源
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

yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0	##指定安装版本1.15.0
rpm -qa | grep kube
systemctl enable kubelet		##设置开机自启动

3、master初始化kubernetes

通过命令参数方式初始化
mkdir k8s
cd k8s
kubeadm init \\		**使用官方提供的命令
--apiserver-advertise-address=192.168.226.129 \\		**只需要更改地址即可
--image-repository registry.aliyuncs.com/google_containers \\
--kubernetes-version v1.15.0 \\		**版本根据自己的实际更改
--service-cidr=10.1.0.0/16 \\		**网段官方自定义好的,直接用
--pod-network-cidr=10.244.0.0/16	**网段官方自定义好的,直接用

4、安装pod网络插件

使用kubectl工具,系统会提示使用此命令
mkdir -p $HOME/.kube	##$HOME环境变量家目录,是当前登录的用户的主文件夹的意思
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

#两个源,随意选择,若都不可以找一下flannel的网络插件yum源
①:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
②:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl get cs		##查看组件状态
kubectl get nodes	##查看节点状态
master ready代表master已经好了


---------------->以上mster组件部署完成了<-----------------------------------
---------------->以下需要将node节点加入master集群<-------------------------------

5、node节点加入集群

node节点操作,使用pull下载
docker pull lizhenliang/flannel:v0.11.0-amd64	##docker 拉取flannel镜像

#添加集群节点(kubeadm join,节点token会周期性变化,kubeadm token list查看token);使用kubeadm join的方式将node加入集群
kubeadm join 192.168.35.40:6443 --token chfclh.et4mfumqjyxdvcns \\
    --discovery-token-ca-cert-hash sha256:b02bdd62745d3313a62e98bd7dd0189387612368f3fd38c9376b60a60e85925f 

kubectl get nodes		##master节点查看node状态 “三个ready”

6、master打node标签

kubectl label node node1 node-role.kubernetes.io/node=node			##打标签node1
kubectl label node node2 node-role.kubernetes.io/node=node			##打标签node2

kubectl get pods -n kube-system 		##查看pod 状态 "1/1 Running"为正常;get获取pod基础资源信息

二、harbor仓库部署

1、修改主机名、添加映射

hostnamectl set-hostname harbor
su
vim /etc/hosts
192.168.226.128 master
192.168.226.129 node1
192.168.226.130 node2
192.168.226.131 harbor

2、关闭防火墙、核心防护、路由转发

systemctl stop firewalld
systemctl disable firewalld
setenforce 0	
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

3、部署harbor

1、docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl start docker
systemctl enable docker

2、修改harbor节点IP、执行安装脚本(绝对路径)

上传docker-compose、harbor压缩文件
cp docker-compose /usr/local/bin	
chmod +x /usr/local/bin/docker-compose	##赋权
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local解压
cd /usr/local/harbor 
sed -i "5s/reg.mydomain.com/192.168.35.30/" /usr/local/harbor/harbor.cfg
sh /usr/local/harbor/install.sh		##执行安装脚本

3、网页登陆

(可在harbor.cfg文件中查看)
默认用户名:admin
默认密码:Harbor12345 

创建共有库 public
---》创建仓库、设置为公开


三、master拉取代码-生成镜像、推送到Harbor

1、拉取代码-生成镜像

yum install git -y
cd /root && git clone https://github.com/otale/tale.git
mkdir dockerfile && cd dockerfile
cp -r /root/tale /root/dockerfile

2、生成Dockerfile文件

vim /root/dockerfile/Dockerfile
FROM docker.io/centos:7
RUN yum install wget curl curl-devel -y
RUN wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm
RUN yum localinstall -y jdk-8u131-linux-x64.rpm
ADD tale tale
RUN cd tale/ && sh install.sh
RUN cd tale/bin && chmod +x tool 
EXPOSE 9000
EOF

3、生成镜像、启动服务

docker build -t="centos:tale" .		##构建镜像
docker run -dit -p 9000:9000 centos:tale /bin/bash	##运行
docker exec -it d19be1a7cbdb /bin/bash	##进入容器
yum -y install lrzsz
上传压缩包tale.tar.gz
tar xvzf tale.tar.gz		##解压
cd tale/tale/ && sh -x tool start 	##开启服务
exit

4、验证

访问博客192.168.35.40:9000

以上是关于K8s单master群集部署--kubeamd方式+harbor仓库的主要内容,如果未能解决你的问题,请参考以下文章

K8s单master群集部署--kubeamd方式+harbor仓库

K8s单master群集部署--kubeamd方式+harbor仓库

k8s 单master群集部署

k8s 单master群集部署

K8S 二进制集群部署--------单master集群

K8S二进制部署---单节点master