K8S 的搭建步骤

#启动etcd
sudo docker run -d --net=host --name=etcd1 -v /etc/kubernetes/ssl:/etc/kubernetes/ssl -v /var/etcd/data/:/var/etcd/data/ gcr.io/google_containers/etcd:3.0.17  /usr/local/bin/etcd --data-dir=/var/etcd/data \
--name=etcd2 \
--listen-client-urls=http://0.0.0.0:2379  \
--advertise-client-urls=http://192.168.56.103:2379  \
--initial-advertise-peer-urls=http://192.168.56.103:2380  \
--listen-peer-urls=http://192.168.56.103:2380  \
--initial-cluster=etcd0=http://192.168.56.101:2380,etcd1=http://192.168.56.102:2380,etcd2=http://192.168.56.103:2380 \
--initial-cluster-state=new \
--cert-file=/etc/kubernetes/ssl/kubernetes.pem  \
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
--peer-cert-file=/etc/kubernetes/ssl/kubernetes.pem \
--peer-key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
--trusted-ca-file=/etc/kubernetes/ssl/ca.pem \
--peer-trusted-ca-file=/etc/kubernetes/ssl/ca.pem \
--initial-cluster-token etcd-cluster-0 




sudo docker run -d --net=host --name=etcd0 -v /etc/kubernetes/ssl:/etc/kubernetes/ssl -v /var/etcd/data/:/var/etcd/data/ gcr.io/google_containers/etcd:3.0.17  /usr/local/bin/etcd --data-dir=/var/etcd/data --name=etcd0 \
--listen-client-urls=http://0.0.0.0:2379 --advertise-client-urls=http://0.0.0.0:2379 \
--initial-cluster-state=new \
--cert-file=/etc/kubernetes/ssl/kubernetes.pem  \
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
--peer-cert-file=/etc/kubernetes/ssl/kubernetes.pem \
--peer-key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
--trusted-ca-file=/etc/kubernetes/ssl/ca.pem \
--peer-trusted-ca-file=/etc/kubernetes/ssl/ca.pem 


#验证


http://10.101.85.159:2379/v2/members


etcdctl   --ca-file=/etc/kubernetes/ssl/ca.pem  \
--cert-file=/etc/kubernetes/ssl/kubernetes.pem   \
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem   \
cluster-health




#启动api
sudo docker run -d --net=host --name=kube-apiserver -v /etc/kubernetes:/etc/kubernetes gcr.io/google_containers/hyperkube:v1.6.1 /hyperkube apiserver \
--service-cluster-ip-range=10.254.0.0/16 \
--advertise-address=192.168.56.101 --bind-address=192.168.56.101 --insecure-bind-address=192.168.56.101 \
--kubelet-port=10250 \
--port=8080 \
--allow-privileged=true \
--admission-control=ServiceAccount,NamespaceLifecycle,NamespaceExists,LimitRanger,ResourceQuota \
--authorization-mode=RBAC \
--runtime-config=rbac.authorization.k8s.io/v1beta1 \
--kubelet-https=true \
--experimental-bootstrap-token-auth \
--token-auth-file=/etc/kubernetes/token.csv  \
--service-node-port-range=30000-32767 \
--tls-cert-file=/etc/kubernetes/ssl/kubernetes.pem  \
--tls-private-key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
--client-ca-file=/etc/kubernetes/ssl/ca.pem \
--service-account-key-file=/etc/kubernetes/ssl/ca-key.pem \
--v=0 \
--logtostderr=true \
--allow-privileged=true \
--etcd-cafile=/etc/kubernetes/ssl/ca.pem \
--etcd-certfile=/etc/kubernetes/ssl/kubernetes.pem \
--etcd-keyfile=/etc/kubernetes/ssl/kubernetes-key.pem \
--etcd-servers=http://192.168.56.101:2379,http://192.168.56.102:2379,http://192.168.56.103:2379  \
--audit-log-maxage=30 --audit-log-maxbackup=3 --audit-log-maxsize=100 --event-ttl=1h


#kube-controller-manager
sudo docker run -d --net=host --name=kube-controller-manager -v /etc/kubernetes:/etc/kubernetes gcr.io/google_containers/hyperkube:v1.6.1 /hyperkube controller-manager \
--master=http://192.168.56.101:8080 \
--service-cluster-ip-range=10.254.0.0/16 \
--cluster-signing-cert-file=/etc/kubernetes/ssl/ca.pem \
--cluster-signing-key-file=/etc/kubernetes/ssl/ca-key.pem  \
--service-account-private-key-file=/etc/kubernetes/ssl/ca-key.pem \
--root-ca-file=/etc/kubernetes/ssl/ca.pem \
--v=2 --leader-elect=true 
#scheduler
sudo docker run -d --net=host --name=kube-scheduler -v /etc/kubernetes:/etc/kubernetes gcr.io/google_containers/hyperkube:v1.6.1 /hyperkube scheduler \
--master=http://192.168.56.101:8080 \
--v=2 --leader-elect=true 








FLANNEL_NETWORK=192.168.0.0/16
FLANNEL_SUBNET=192.168.40.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=false




 










etcdctl   --ca-file=/etc/kubernetes/ssl/ca.pem  \
--cert-file=/etc/kubernetes/ssl/kubernetes.pem   \
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
set /coreos.com/network/config "{\"Network\":\"10.254.0.0/16\",\"Backend\":{\"Type\":\"vxlan\"}}"






etcdctl   --ca-file=/etc/kubernetes/ssl/ca.pem  \
--cert-file=/etc/kubernetes/ssl/kubernetes.pem   \
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
get /coreos.com/network/config 




#网络配置
./flanneld --etcd-endpoints=http://192.168.56.101:2379,http://192.168.56.102:2379,http://192.168.56.103:2379 -etcd-cafile=/etc/kubernetes/ssl/ca.pem -etcd-certfile=/etc/kubernetes/ssl/kubernetes.pem -etcd-keyfile=/etc/kubernetes/ssl/kubernetes-key.pem > /var/log/flanneld 2>&1 &


./mk-docker-opts.sh -i
cat /run/flannel/subnet.env
source /run/flannel/subnet.env
ifconfig docker0 ${FLANNEL_SUBNET}


SUBNET=10.254.0.0/16
defaultgw=`route -n | grep '^0.0.0.0' | awk '{print $2}'`
ip route del $SUBNET via $defaultgw dev eth0
ip route add $SUBNET via 0.0.0.0 dev flannel.1


10.254.51.0/24
/etc/systemd/system/multi-user.target.wants/docker.service
--disable-legacy-registry --bip=192.168.35.1/24 --ip-masq=false --mtu=1450
sudo systemctl daemon-reload
sudo systemctl restart docker


#
kubectl create clusterrolebinding kubelet-bootstrap \
  --server=http://192.168.56.101:8080 \
  --clusterrole=system:node-bootstrapper \
  --user=kubelet-bootstrap 


#启动 
hyperkube kubelet  --api-servers=http://192.168.56.101:8080 \
--cluster-dns=10.254.0.2 \
--cluster-domain=cluster.local. \
--experimental-bootstrap-kubeconfig=/etc/kubernetes/bootstrap.kubeconfig \
--kubeconfig=/etc/kubernetes/kubelet.kubeconfig  \
--require-kubeconfig --cert-dir=/etc/kubernetes/ssl   > /var/log/kubelet 2>&1 &


# apiserver让其认证通过
kubectl get csr
kubectl certificate approve csr-2b308
kubectl get nodes


#
hyperkube proxy --master=http://192.168.56.101:8080 \
--kubeconfig=/etc/kubernetes/kube-proxy.kubeconfig --cluster-cidr=10.254.0.0/16 > /var/log/proxy 2>&1 &

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值