k8s,该怎么搭
镜像仓库机器192.168.1.100registry跳板机 192.168.1.252 要绑定一个弹性公网ip,且是ansible管理主机proxy模板机和跳板机之后在写master ip192.168.1.21node节点的ip192.168.1.31到192.168.1.331.安装仓库服务 registry要求:docker和docker仓库必须装好,且开机自启,启服务yum makeca
镜像仓库机器192.168.1.100 registry
跳板机 192.168.1.252 要绑定一个弹性公网ip,且是ansible管理主机 proxy 模板机和跳板机之后在写
master ip192.168.1.21
node节点的ip192.168.1.31到192.168.1.33
1.安装仓库服务 registry
要求:docker和docker仓库必须装好,且开机自启,启服务
yum makecache
yum install -y docker-ce-*
yum -y install docker-distribution
systemctl enable --now docker-distribution
systemctl enable --now docker
2.在跳板机上创建一个myos目录
然后把init-img.sh脚本和myos.tar.gz移动到myos目录里
将myos传到仓库服务器上
mkdir myos
cp init-img.sh myos
cp myos.tar.gz myos
scp -r myos 192.168.1.100:/root
3.在myos目录下执行脚本创建
启动脚本之前先给755的权限
cd myos
chmod 755 init-img.sh
./init-img.sh
curl http://192.168.1.100:5000/v2/myos/tags/list
{"name":"myos":"tags":["nginx","php-fpm","v1804","httpd"]}
注意:脚本和myos.tar.gz必须在一个目录下
myos.tar.gz不能解压
执行脚本时,报没有这个命令就是说明你没有装docker的包
4.安装k8s
准备:防火墙相关配置---selinux禁用,禁用swap,卸载firewalld-*,这些之前环境准备的镜像已经弄好了
配置yum仓库跳板机
proxy
要求:localrepo目录下要有k8s-install,repodata,docker这三个文件
cp -a v1.17.6/k8s-install /var/ftp/localrepo/ 把需要的移动到目录下
scp -r /var/ftp/localrepo 192.168.1.21:/root 拷到目标master
cd /var/ftp/localrepo/ 进入
rm -rf repodata 删除旧的repodata
createrepo --update .
registry仓库机上验证一下
仓库机也来份localrepo
cd localrepo/
yum makecache
yum repolist 查看是否有个仓库有11个文件
master下
mkdir /etc/docker
cd localrepo/
yum makecache
yum repolist
yum -y install kubeadm kubelet kubectl docker-ce
vim /etc/docker/daemon.json 编写docker的配置文件
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://hub-mirror.c.163.com"],
"insecure-registries":["192.168.1.100:5000", "registry:5000"]
}
systemctl enable --now docker kubelet
docker info | grep Cgroup 查看
Cgroup Driver: systemd
5.把镜像导入到私有仓库 (master下)
把v1.17.6下的base-images中的镜像拷贝到master
cd base-images/
# 把kubernetes/v1.17.6/base-images 中的镜像拷贝到 master
for i in *.tar.gz;do docker load -i ${i};done 写for循环改名称
docker images
docker images |awk '$2!="TAG"{print $1,$2}'|while read _f _v;do
docker tag ${_f}:${_v} 192.168.1.100:5000/${_f##*/}:${_v};
docker push 192.168.1.100:5000/${_f##*/}:${_v};
docker rmi ${_f}:${_v};
done
# 查看验证
curl http://192.168.1.100:5000/v2/_catalog
6.设置tab键,方便补全(master下)
kubectl completion bash >/etc/bash_completion.d/kubectl
kubeadm completion bash >/etc/bash_completion.d/kubeadm
exit
kubeadm 连续tab2次,看到可以补全的命令就是正确
7.安装IPVS代理软件包(master下)
yum install -y ipvsadm ipset
8.配置master环境
vim /etc/hosts
192.168.1.21 master
192.168.1.31 node-0001
192.168.1.32 node-0002
192.168.1.33 node-0003
192.168.1.100 registry
vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
modprobe br_netfilter
sysctl --system
9.使用kubeadm部署
应答文件在 kubernetes/v1.17.6/config 目录下
mkdir init;cd init
# 拷贝 kubeadm-init.yaml 到 master 云主机 init 目录下
kubeadm init --config=kubeadm-init.yaml |tee master-init.log
# 根据提示执行命令,前一段意思是已经安装了,但是你没有权限,所以我们推荐你用以下命令得到权限
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
10.验证安装结果
kubectl version
kubectl get componentstatuses
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
scheduler Healthy ok
etcd-0 Healthy {"health":"true"}
11.计算节点node的安装
1.# 创建token
root@master ~]# kubeadm token list 可以看到一个23小时生命的token,建议
kubeadm token delete token的id
[root@master ~]# kubeadm token create --ttl=0 --print-join-command 创建token永久的建议和哈希值都保存在一边,有用
[root@master ~]# kubeadm token list
# 获取token_hash
[root@master ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt |openssl rsa -pubin -outform der |openssl dgst -sha256 -hex 重新查找哈希值
2.node的安装
考kubernetes/v1.17.6/node-install 到跳板机
[root@ecs-proxy ~]# cd node-install/
[root@ecs-proxy node-install]# vim files/hosts
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.21 master
192.168.1.31 node-0001
192.168.1.32 node-0002
192.168.1.33 node-0003
192.168.1.100 ecs-registry
[root@ecs-proxy node-install]# vim node_install.yaml
... ...
vars:
master: '192.168.1.21:6443'
token: 'fm6kui.mp8rr3akn74a3nyn'
token_hash: 'sha256:f46dd7ee29faa3c096cad189b0f9aedf59421d8a881f7623a543065fa6b0088c'
... ...
[root@ecs-proxy node-install]# ansible-playbook node_install.yaml执行生成,全绿和黄色便是成功
3.验证安装
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady master 130m v1.17.6
node-0001 NotReady <none> 2m14s v1.17.6
node-0002 NotReady <none> 2m15s v1.17.6
node-0003 NotReady <none> 2m9s v1.17.6
4.网络插件安装配置
考 kubernetes/v1.17.6/flannel 目录到 master 上
1、上传镜像到私有仓库
[root@master ~]# cd flannel
[root@master flannel]# docker load -i flannel.tar.gz
[root@master flannel]# docker tag quay.io/coreos/flannel:v0.12.0-amd64 192.168.1.100:5000/flannel:v0.12.0-amd64
[root@master flannel]# docker push 192.168.1.100:5000/flannel:v0.12.0-amd64
2、修改配置文件并安装
[root@master flannel]# vim kube-flannel.yml
128: "Network": "10.244.0.0/16",
172: image: 192.168.1.100:5000/flannel:v0.12.0-amd64
186: image: 192.168.1.100:5000/flannel:v0.12.0-amd64
227-结尾: 删除
[root@master flannel]# kubectl apply -f kube-flannel.yml
3.验证结果
ifconfig查看
[root@master flannel]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 26h v1.17.6
node-0001 Ready <none> 151m v1.17.6
node-0002 Ready <none> 152m v1.17.6
node-0003 Ready <none> 153m v1.17.6
出现全部ready就是k8s集群搭建成功
更多推荐
所有评论(0)