如何使用K8S实现自动化部署

Jenkins+K8s+Docker 自动化部署

verison

1.16.3 (建议指定版本,不同版本对组件兼容性不一)
部署环境: 百度云/阿里云
ps:文件中的IP不可代入;资料文件可以私聊我/或者其他使用问题都可以交流,欢迎评论

部署前必备

修改/ets/hosts文件

将所有节点写入

192.168.0.128 k8s-master
192.168.0.131 k8s-node1
192.168.0.132 k8s-node2
192.168.0.135 k8s-node3
关闭防火墙和关闭****SELinux**
systemctl stop fifirewalld 

systemctl disable fifirewalld 

setenforce 0 临时关闭 

vi /etc/sysconfig/selinux 永久关闭 

改为SELINUX=disabled 
设置系统参数

设置允许路由转发,不对bridge的数据进行处理

创建文件

vi /etc/sysctl.d/k8s.conf 

内容如下:

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1 

net.ipv4.ip_forward = 1

 vm.swappiness = 0 

执行文件

sysctl -p /etc/sysctl.d/k8s.conf
kube-proxy开启ipvs****的前置条件
vi /etc/sysconfig/modules/ipvs.modules 

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4

执行 chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4 
所有节点关闭****swap
swapoff -a 临时关闭 

vi /etc/fstab 永久关闭 

注释掉以下字段

/dev/mapper/cl-swap swap swap defaults 0 0
创建 k8s yum 源
vim /etc/yum.repos.d/kubernetes.repo

[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

安装docker环境

  $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O/etc/yum.repos.d/docker-ce.repo
  $ yum -y install docker-ce
  $ systemctl enable docker && systemctl start docker**
  $ docker --version

安装k8s

安装:

yum  install -y kubelet-1.16.3 kubeadm-1.16.3 kubectl-1.16.3

kubelet设置开机启动(注意:先不启动,现在启动的话会报错)

systemctl enable kubelet 

查看版本

kubelet --version 

初始化

– master 节点需要完成初始化

kubeadm init --kubernetes-version=**1.16.3** --apiserver-advertise-address=192.168.255.14 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 
  • 记住加入主节点的密钥,后面子节点加入集群环境的时候需要执行此命令
kubeadm join 192.168.255.14:6443 --token 6o05b2.9bloexv68xwasjjb \
    --discovery-token-ca-cert-hash sha256:fd03cb1bdd7293b4bde56709d2c787f345089c229ac3067900dfc5c1323b0f0d 

初始化入失败如何处理

在节点上执行 kubeadm reset

常见错误:

错误一:[WARNING IsDockerSystemdCheck]: detected “cgroupfs” as the Docker cgroup driver

作为Docker cgroup驱动程序。,Kubernetes推荐的Docker驱动程序是“systemd”

解决方案:修改Docker的配置: vi /etc/docker/daemon.json,加入

{
“exec-opts”: [“native.cgroupdriver=systemd”]
}

然后重启Docker

配置kubectl 工具

mkdir -p $HOME/.kube 

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 

sudo chown $(id -u):$(id -g) $HOME/.kube/config 

安装calico网络组件

下载calico的yaml文件

mkdir k8s 

cd k8s 

wget https://docs.projectcalico.org/v3.10/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml   --no-check-certificate

sed -i 's/192.168.0.0/10.244.0.0/g' calico.yaml 

创建calico服务

kubectl apply -f calico.yaml

等待几分钟,查看所有Pod的状态,确保所有Pod都是Running状态

nfs-client的安装(所有节点都需要安装)

安装命令
yum install -y nfs-utils 

systemctl enable nfs 开机启动 

以下操作只需在master节点上进行

创建共享目录
mkdir -p /opt/nfs/jenkins 

vi /etc/exports 编写NFS的共享配置 

/opt/nfs/jenkins *(rw,no_root_squash) *代表对所有IP都开放此目录,rw是读写

3)启动服务

service start  nfs

4)查看NFS共享目录

创建NFS client provisioner

nfs-client-provisioner 是一个Kubernetes的简易NFS的外部provisioner,本身不提供NFS,需要现有

的NFS服务器提供存储。

你可能感兴趣的:(Devops实践,devops,docker,kubernetes,运维,自动化)