kubernetes部署(k8s部署)
一、kubernetes简介:Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行
一、kubernetes简介:
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
在Kubernetes中,我们可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
二、kubernetes特点:
可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
可扩展: 模块化,插件化,可挂载,可组合
自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
三、kubernets部署方式
1.minikube
Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户 使用。不能用于生产环境。
2.kubeadm
kubeadm可帮助你快速部署一套kubernetes集群。kubeadm设计目的为新用户开始尝试kubernetes提供 一种简单的方法。目前是Beta版。
3.二进制包
从官方下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。目前企业生产环境中主要使 用该方式。
四、搭建kubernets容器集群平台
1.环境需求
k8s-master | 192.174.1.3 |
k8s-node1 | 192.174.1.4 |
k8s-node2 | 192.174.1.5 |
2.禁用swap分区,安装docker
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
关闭selinux
vim /etc/selinux/config
关闭swap
cat /etc/fstab
swapoff -a
强制关闭swapp
vim /etc/sysctl.conf
vm.swappiness = 0
sysctl -p
安装docker
安装版本不要最新,否则容易软件不匹配,我安装的是docker-ce-18.06.1.ce-3.el7版本
yum -y install docker-ce-18.06.1.ce-3.el7
查看UUID和mac地址是否不一样
cat /sys/class/net/ens33/address
cat /sys/class/dmi/id/product_uuid
设置桥接网络
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
如果报错 需要添加模块
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
3.安装kubernets(所有都需要安装)
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install kubelet-1.17.0 kubeadm-1.17.0 kubectl-1.17.0
systemctl enable kubelet && systemctl start kubelet
4.部署镜像(三台都这么做)
#下载镜像
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.17.0
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.17.0
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.17.0
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.17.0
docker pull registry.aliyuncs.com/google_containers/pause:3.1
docker pull registry.aliyuncs.com/google_containers/etcd:3.4.3-0
docker pull registry.aliyuncs.com/google_containers/coredns:1.6.5
#打标签
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.17.0 k8s.gcr.io/kube-apiserver:v1.17.0
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.17.0 k8s.gcr.io/kube-controller-manager:v1.17.0
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.17.0 k8s.gcr.io/kube-scheduler:v1.17.0
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.17.0 k8s.gcr.io/kube-proxy:v1.17.0
docker tag registry.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag registry.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
docker tag registry.aliyuncs.com/google_containers/coredns:1.6.5 k8s.gcr.io/coredns:1.6.5
#删除原始镜像
docker rmi registry.aliyuncs.com/google_containers/kube-apiserver:v1.17.0
docker rmi registry.aliyuncs.com/google_containers/kube-controller-manager:v1.17.0
docker rmi registry.aliyuncs.com/google_containers/kube-scheduler:v1.17.0
docker rmi registry.aliyuncs.com/google_containers/kube-proxy:v1.17.0
docker rmi registry.aliyuncs.com/google_containers/pause:3.1
docker rmi registry.aliyuncs.com/google_containers/etcd:3.4.3-0
docker rmi registry.aliyuncs.com/google_containers/coredns:1.6.5
5.下载flennel网络镜像并创建网络
docker pull quay.io/coreos/flannel:v0.12.0-amd64
mkdir -p /etc/cni/net.d/
cat <<EOF> /etc/cni/net.d/10-flannel.conf
{
"name";"cbr0",
"type" : "flannel",
"delegate": {
"isDefaultGateway”: true
}
}
EOF
mkdir /usr/share/oci-umount/oci-umount.d -p
mkdir /run/flannel/
cat <<EOF> /run/flannel/subnet.env
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.1.0/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
EOF
6.master节点做发布
kubeadm init --kubernetes-version=v1.17.0 --apiserver-advertise-address 192.174.1.3 --pod-network-cidr 10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
两台从节点加入群集
kubeadm join 192.174.1.3:6443 --token p3ynz3.v7n1hgt7dpw3n8wm \
--discovery-token-ca-cert-hash sha256:9e019637a18595294e79490c099b443a54cd318d1b95ff19650f0d330a5883f3
7.添加网络组件flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
8.查看日志
journalctl -f -u kubelet.service
更多推荐
所有评论(0)