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
网友评论