k8s部署

Posted zhenhui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s部署相关的知识,希望对你有一定的参考价值。

k8s部署

1.介绍

  Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能

  通过Kubernetes你可以:

  • 快速部署应用
  • 快速扩展应用
  • 无缝对接新的应用功能
  • 节省资源,优化硬件资源的使用

   Kubernetes 特点

  • 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
  • 可扩展: 模块化, 插件化, 可挂载, 可组合
  • 自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展

2.部署环境

  1.系统   centos7.5

        2.节点: 3个节点

        3 ip地址    10.121.12.10 10.121.12.11 10.121.12.12

3.部署k8s

设置主机名
hostnamectl set-hostname k8s-master
hostnamectl set-hostname k8s-node1
hostnamectl set-hostname k8s-node2

配置时间同步所有节点都要执行

crontab -e
*/02 * * * * /usr/sbin/ntpdate time1.aliyun.com && /usr/sbin/clock -w

关闭防火墙,注意:所有节点都要执行

systemctl disable firewalld

systemctl stop firewalld

setenforce 0

优化内核参数,注意:所有节点都要执行

cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

清除docker软件包,如果新的系统,请忽略

yum remove docker  docker-common  docker-selinux  docker-engine

安装docker 依赖包,注意:所有节点都要执行

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum makecache fast

yum -y --setopt=obsoletes=0 install docker-ce-17.03.0.ce-1.el7.centos

启动docker服务并查看版本,注意:所有节点都要执行

systemctl enable docker && systemctl start docker

docker version

安装k8s服务,注意:所有节点都要执行

#配置yum源
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
#安装k8s
yum search kubeadm
yum install -y kubelet kubeadm kubectl kubernetes-cni
systemctl enable kubelet && systemctl start kubelet

下载k8sdocker images 服务,注意:所有节点都要执行

vim image2.sh
images=(
    kube-apiserver:v1.14.0
    kube-controller-manager:v1.14.0
    kube-scheduler:v1.14.0
    kube-proxy:v1.14.0
    pause:3.1
    etcd:3.3.10
    coredns:1.3.1
    kubernetes-dashboard-amd64:v1.10.1
    heapster-grafana-amd64:v5.0.4
    heapster-influxdb-amd64:v1.5.2
    heapster-amd64:v1.5.4
)
for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName}
    docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName} k8s.gcr.io/${imageName}
    #docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/${imageName}
done

#执行命令
sh image2.sh 

查看镜像 是否都下载到docker中

#查看docker images
docker image ls
#k8s配置
kubeadm config images list

 master 初始化

kubeadm init --kubernetes-version=v1.14.0 --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

 部署容器

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

查看pods

kubectl get pods --all-namespaces

加入slave节点

#token 在master初始化的时候生成的,到节点中执行
kubeadm join 192.168.115.146:6443 --token f8pwe2.13tqwhy020mn580a     --discovery-token-ca-cert-hash sha256:69056be6342088ce82d8409f2df96765d1e1f9f84e31e2cd85c966efe472e540

以上是关于k8s部署的主要内容,如果未能解决你的问题,请参考以下文章

导致资产预编译在heroku部署上失败的代码片段

k8s+SpringCloud全栈技术:在k8s平台部署亿级高并发的SpringCloud项目

微服务从代码到k8s部署应有尽有系列全集

Jenkins file一行代码部署.NET程序到K8S

springboot 部署k8s

K8s+Jenkins+GitLab+动态slave-自动化项目部署(详细讲解)