美文网首页Kubernets
3.kubernetes 的手动部署

3.kubernetes 的手动部署

作者: 条子在洗澡 | 来源:发表于2019-03-30 18:50 被阅读3次

master:192.168.199.150
node1:192.168.199.151
node2:192.168.199.152

master和node都要做的

#关闭屏保。避免卡顿
setterm -blank 0

#关闭selinux及防火墙,重启机器生效
vim /etc/selinux/config
修改为
SELINUX=disabled

setenforce 0
systemctl stop firewalld
systemctl disable firewalld

#配置hosts 有dns的去配dns即可
echo "192.168.199.150   k8s-master1-hand    
192.168.199.151   k8s-node1-hand    
192.168.199.152   k8s-node2-hand" >>/etc/hosts

#关闭swap
swapoff -a
vim /etc/fstab
#/dev/mapper/centos-swap swap                    swap    defaults        0 0

#换源
yum install -y wget
cd /etc/yum.repos.d/
tar -cvf bak.tgz *
rm -rf CentOS-*
wget  http://mirrors.aliyun.com/repo/Centos-7.repo
mv Centos-7.repo CentOS-Base.repo
wget https://mirrors.aliyun.com/repo/epel-7.repo

cat <<EOF > /etc/yum.repos.d/k8s.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

yum clean all
yum makecache
yum update

#设置相关属性
cat <<EOF>/etc/sysctl.d/k8s.conf
vm.swappiness=0     
net.bridge.bridge-nf-call-ip6tables = 1     
net.bridge.bridge-nf-call-iptables = 1          
net.ipv4.ip_forward = 1
EOF
#执行命令生效 
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf

#安装docker 并配置阿里云镜像加速器
yum install -y docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://i70c3eqq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker


#下载镜像
docker pull hub.c.163.com/malzahar/pod-infrastructure:latest
docker tag hub.c.163.com/malzahar/pod-infrastructure:latest registry.access.redhat.com/rhel7/pod-infrastructure:latest 

master执行:

yum install -y kubernetes etcd

#配置etcd
echo 'ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"    
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"' >> /etc/etcd/etcd.conf

systemctl restart etcd ; systemctl enable etcd

#查看etcd是否启动
systemctl is-active etcd

#设置flannel网络地址,注意ip为网卡docker0地址
etcdctl -C http://192.168.199.150:2379 set /atomic.io/network/config '{"Network":"172.17.0.0/16"}'  

#查看设置的值是否成功
etcdctl get /atomic.io/network/config

etcdctl ls /atomic.io/network/config
etcdctl get/atomic.io/network/config

#配置命令补全
yum install -y bash-completion
echo 'source <(kubectl completion bash)' >> /etc/profile
source /etc/profile

配置master其他属性

cd /etc/kubernetes/
vim /etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.199.150:8080"

vim /etc/kubernetes/apiserver
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
KUBE_API_PORT="--port=8080"
KUBELET_PORT="--kubelet-port=10250"
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,ServiceAccount,ResourceQuota"

vim /etc/kubernetes/controller-manager
KUBELET_ADDRESSES="--machines=192.168.199.150,192.168.199.151,192.168.199.152"

vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=192.168.199.150"
KUBELET_API_SERVER="--api-servers=http://192.168.168.150:8080"

#查看k8s服务状态
systemctl list-unit-files |grep kube

#重启相关disabled服务
systemctl restart kube-apiserver.service kube-controller-manager.service kube-proxy.service kube-scheduler.service kubelet.service 

#查看是否启动成功
systemctl is-active kube-apiserver.service kube-controller-manager.service kube-proxy.service kube-scheduler.service kubelet.service 

#设置服务开机启动
systemctl enable kube-apiserver.service kube-controller-manager.service kube-proxy.service kube-scheduler.service kubelet.service 

手动安装node1,(node2同理)

yum install kubernetes-node flannel -y

vim /etc/kubernetes/config
KUBE_MASTER="--master=http://192.168.168.150:8080"

vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="--address=0.0.0.0"
KUBELET_PORT="--port=10250"
KUBELET_HOSTNAME="--hostname-override=192.168.199.151"
KUBELET_API_SERVER="--api-servers=http://192.168.199.150:8080"

vim /etc/sysconfig/flanneld
FLANNEL_ETCD_ENDPOINTS="http://192.168.199.150:2379"

#查看停止的服务,并重启
systemctl list-unit-files |grep kube
systemctl restart kubelet.service kube-proxy.service flanneld
systemctl is-active kubelet.service kube-proxy.service flanneld
systemctl enable kubelet.service kube-proxy.service flanneld

master操作

#通过上面的配置在master上查看节点加入情况
[root@k8s-master1-hand kubernetes]# kubectl get nodes
NAME              STATUS    AGE
192.168.199.150   Ready     26m
192.168.199.151   Ready     3m
192.168.199.152   Ready     31s

etcd v2版本配置

[root@k8s-master1-hand kubernetes]# etcdctl mkdir /aa
[root@k8s-master1-hand kubernetes]# etcdctl ls /
/atomic.io
/registry
/aa
[root@k8s-master1-hand kubernetes]# etcdctl rmdir /aa  #-f参数可以强制删除
[root@k8s-master1-hand kubernetes]# etcdctl ls /
/atomic.io
/registry
[root@k8s-master1-hand kubernetes]# etcdctl set /aa/test "hello etcd"
hello etcd
[root@k8s-master1-hand kubernetes]# etcdctl get /aa/test
hello etcd
[root@k8s-master1-hand kubernetes]# etcdctl update /aa/test "hello etcd update"
hello etcd update
[root@k8s-master1-hand kubernetes]# etcdctl get /aa/test
hello etcd update


#使用api_version 3
export ETCDCTL_API=3

#查看帮助并制作快照
etcdctl help snapshot save
etcdctl --endpoints=127.0.0.1:2379 snapshot save snap1.db

#恢复快照
etcdctl snapshot restore snap1.db


在另外的窗口
etcdctl rmdir /atomic.io/network/config


相关文章

  • 3.kubernetes 的手动部署

    master:192.168.199.150node1:192.168.199.151node2:192.168....

  • Jenkins 一键部署

    简介 搭建方式 手动部署 docker部署 手动部署 1、环境要求 检查java环境是否为1.8 2、添加jenk...

  • Linux-部署项目

    零、本文纲要 一、手动直接部署 二、优化手动直接部署 三、通过Shell脚本自动部署① 在Linux中安装Git③...

  • 利用Travis CI+GitHub实现持续集成和自动部署

    前言 如果你手动部署过项目,一定会深感持续集成的必要性,因为手动部署实在又繁琐又耗时,虽然部署流程基本固定,依然还...

  • k8s 安装部署

    k8s 部署 kubernetes(k8s)的部署有手动部署和 kubeadm 部署的方式. 还有一些简单的部署方...

  • 自动化部署深度实践

    1.1 早期手动部署代码 方式 纯手动scp上传代码。 纯手动登陆,git pull 或者svn update。 ...

  • 持续集成认识(附加)

    概述:早期手动部署代码:纯手动scp上传代码纯手动登录,git pull或者svn update #svn upd...

  • ceph手动部署

    一. 配置文件 第一步需要生成一个uuid,命令uuidgen 配置config文件 二. 创建一个mon监视器 ...

  • 使用 Jenkins 部署 PHP Laravel 项目

    目标: 通过脚本手动部署项目到远程服务器 使用 GitHub webhook 在分支变更时自动部署 部署脚本 分析...

  • 02. kubeadm部署k8s

    1. k8s安装部署介绍 1.1 部署工具 使用批量部署工具, 如(ansible/saltstack) 手动二进...

网友评论

    本文标题:3.kubernetes 的手动部署

    本文链接:https://www.haomeiwen.com/subject/ihxdbqtx.html