k8s,该怎么搭

镜像仓库机器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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值