基于yum 安装 可以参考上一篇文章yum源配置 节点: master: 10.10.1.104 node1: 10.10.1.105 node2: 10.10.1.106
一 初始化 所有节点操作 cat /etc/hosts
10.10.1.104 master
10.10.1.105 node1
10.10.1.106 node2
61.91.161.217 google.com 61.91.161.217 gcr.io 61.91.161.217 www.gcr.io 61.91.161.217 console.cloud.google.com 61.91.161.217 storage.googleapis.com
vi /etc/selinux/config SELINUX=permissive setenforce 0
systemctl stop firewalld systemctl disable firewalld
二 安装kubernetes yum -y install kubernetes etcd flannel 所有节点
配置下Docker cat /usr/lib/systemd/system/docker.service
[Unit] Description=Docker Application Container Engine Documentation=http://docs.docker.com After=network.target docker-containerd.service Wants=docker-storage-setup.service Requires=docker-containerd.service rhel-push-plugin.socket
[Service] Type=notify EnvironmentFile=-/etc/sysconfig/docker EnvironmentFile=-/etc/sysconfig/docker-storage EnvironmentFile=-/etc/sysconfig/docker-network Environment=GOTRACEBACK=crash ExecStart=/usr/bin/dockerd-current \ –add-runtime oci=/usr/libexec/docker/docker-runc-current \ –log-driver=syslog \ –default-runtime=oci \ –registry-mirror=https://8l5bep5r.mirror.aliyuncs.com \ –authorization-plugin=rhel-push-plugin \ –containerd /run/containerd.sock \ –exec-opt native.cgroupdriver=systemd \ –userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=0 Restart=on-abnormal
[Install] WantedBy=multi-user.target
vi /etc/sysconfig/docker OPTIONS=’–selinux-enabled –log-driver=journald –graph=/data/env/docker –insecure-registry 私有仓库地址
mkdir -p /data/env/docker systemctl enable docker && systemctl restart docker systemctl status docker
三 配置kubernetes 所有节点配置 vi /etc/kubernetes/config KUBE_ETCD_SERVERS=”–etcd-servers=http://10.10.1.104:2379” KUBE_LOGTOSTDERR=”–logtostderr=true” KUBE_LOG_DIR=”–log-dir=/data/logs/kubernetes” KUBE_LOG_LEVEL=”–v=1” KUBE_ALLOW_PRIV=”–allow-privileged=false” KUBE_MASTER=”–master=http://10.10.1.104:8080”
master 配置: vi /etc/etcd/etcd.conf
[member] ETCD_NAME=default ETCD_DATA_DIR=”/var/lib/etcd/default.etcd” ETCD_LISTEN_CLIENT_URLS=”http://0.0.0.0:2379”
[cluster] ETCD_ADVERTISE_CLIENT_URLS=”http://0.0.0.0:2379”
vi /etc/kubernetes/apiserver
KUBE_API_ADDRESS=”–address=0.0.0.0” KUBE_ETCD_SERVERS=”–etcd-servers=http://10.10.1.104:2379” KUBE_SERVICE_ADDRESSES=”–service-cluster-ip-range=10.254.0.0/16” KUBE_ADMISSION_CONTROL=”–admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota”
KUBE_API_ARGS=”“
systemctl start etcd etcdctl mkdir /kube-centos/network etcdctl mk /kube-centos/network/config “{ \”Network\”: \”172.20.0.0/16\”, \”SubnetLen\”: 24, \”Backend\”: { \”Type\”: \”vxlan\” } }”
vi /etc/sysconfig/flanneld FLANNEL_ETCD_ENDPOINTS=”http://10.10.1.104:2379” FLANNEL_ETCD_PREFIX=”/kube-centos/network”
systemctl restart etcd kube-apiserver kube-controller-manager kube-scheduler flanneld systemctl enable etcd kube-apiserver kube-controller-manager kube-scheduler flanneldnode 节点配置 vi /etc/kubernetes/kubelet KUBELET_ADDRESS=”–address=0.0.0.0” KUBELET_HOSTNAME=”–hostname-override=node1” KUBELET_API_SERVER=”–api-servers=http://10.10.1.104:8080” KUBELET_ARGS=”“ vi /etc/sysconfig/flanneld FLANNEL_ETCD_ENDPOINTS=”http://10.10.1.104:2379” FLANNEL_ETCD_PREFIX=”/kube-centos/network”
systemctl restart kube-proxy kubelet flanneld docker systemctl enable kube-proxy kubelet flanneld dockerps -ef | grep kube
master 操作
kubectl cluster-info kubectl get nodes NAME STATUS AGE node1 Ready 45d node2 Ready 45d