ansible+K8S部署

准备节点:

master 192.168.1.21 2CPU,2G内存
node-0001 192.168.1.31 2CPU,2G内存
node-0002 192.168.1.32 2CPU,2G内存
node-0003 192.168.1.33 2CPU,2G内存
registry 192.168.1.100 1CPU,1G内存

master部署ansbible


vim install_ansible.sh

#!/bin/bash
#配置yum源为阿里云
cd /etc/yum.repos.d/


#备份自带的yum源
mv CentOS-Base.repo CentOS-Base.repo.backup

#下载阿里云yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all

yum -y install ansible



[root@master ~]#chmod +x install_ansible.sh
[root@master ~]#./instatll_ansible.sh

设置免密

[root@master ~]#ssh-copy-id root@192.168.1.31
[root@master ~]#ssh-copy-id root@192.168.1.32
[root@master ~]#ssh-copy-id root@192.168.1.33
[root@master ~]#ssh-copy-id root@192.168.1.100

cat /etc/hosts   在master上的/etc/hosts文件中添加k8s服务器节点信息

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
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

在masteer服务器上的/etc/ansible/hosts文件中添加k8s服务器节点

[root@master ~]# vim /etc/ansible/hosts 
[k8s-all]
192.168.1.21
192.168.1.31
192.168.1.32
192.168.1.33
192.168.1.100
[master]
192.168.1.21
[nodes]
192.168.1.31
192.168.1.32
[registry]
192.168.1.100

[root@master ~]# ansible k8s-all -m ping

修改k8s集群各节点/etc/hosts

vim cat hosts_playbook.yml

---
- hosts: nodes
  remote_user: root

  tasks:
    - name: backup /etc/hosts
      shell: mv /etc/hosts /etc/host_bak
    - name: copy localhosts file to remote
      copy: src=/etc/hosts dest=/etc/ owner=root group=root mode=0644

[root@master ~]# ansible-playbook hosts_playbook.yml

安装镜像仓库   192.168.1.100

vim install_registry.yml

---
- hosts: registry
  remote_user: root

  tasks:
    - name: install_registry
      yum: name=docker-distribution state=present
    - name: name: start registry
      shell: systemctl enable --now docker-distribution
 

拷贝云盘 registry/myos目录 到 仓库服务器

[root@registry ~]# cd myos
[root@registry ~]# chmod 755 init-img.sh
[root@registry ~]# ./init-img.sh
[root@registry ~]# curl http://192.168.1.100:5000/v2/myos/tags/list
{"name":"myos","tags":["nginx","php-fpm","v1804","httpd"]}

安装Docker

cat install_docker_playbook.yml

- hosts: k8s-all
  remote_user: root
  vars: 
    docker_version: 18.09.2

  tasks:
    - name: install dependencies
      shell:  yum install -y yum-utils device-mapper-persistent-data lvm2
    - name: docker-repo
      shell: yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
    - name: install docker
      yum: name=docker-ce-{
  {docker_version}} state=present
    - name: start docker
      shell: systemctl start docker && systemctl enable docker

[root@master ~]# vim  /etc/ansible/ansible.cfg
deprecation_warnings = false  ## 179默认是true,并且不生效
[root@master ~]# ansible-playbook install_docker_playbook.yml 

selinux,禁用 swap,卸载 firewalld-*

cat before.sh

#!/bin/bash
#防火墙
systemctl disable firewalld
systemctl stop firewalld
setenforce 0

#禁用swap
swapoff -a

#修改内核参数
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

#重新加载配置文件
sysctl --system

#配置阿里k8s yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-/$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-ley.gpg
       https://packages.cloud.goodle.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl

#更新缓存
yum clean all -y && yum makecache -y 
#安装
yum -y install kubelet kubeadm kubectl docker-ce --disableexcludes=kubernetes
#设置仓库地址
mkdir -p /etc/docker
echo  {
    "exec-opts": ["native.cgroupdriver=systemd"],
    "registry-mirrors": ["https://hub-mirror.c.163.com"],
    "insecure-registries":["192.168.1.100:5000", "registry:5000"]
} > /etc/docker/daemon.json

#启动仓库
systemctl enable --now docker kubelet


镜像导入私有仓库

把云盘 kubernetes/v1.17.6/base-images 中的镜像拷贝到 master

cat images.sh

cd base-images/
#导入镜像
for i in *.tar.gz;do docker load -i ${i};done

#上传镜像仓库

docker images |awk '$2!="TA
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值