k8s1.5.2的安裝
- 2019 年 10 月 29 日
- 筆記
一、環境要求
1、linux 內核3.10以上
2、64位系統
3、記憶體4G
4、安裝docker
設定集群
master = 192.168.206.130
minion1 = 192.168.206.131
minion2 = 192.168.206.132
二、安裝master
yum install -y kubernetes etcd flannel
三、修改/etc/kubernetes/apiserver
KUBE_API_ADDRESS="–insecure-bind-address=172.16.138.101" 也可改成0.0.0.0比較危險
KUBE_ADMISSION_CONTROL 欄位中去掉ServiceAccount 不要這個准入機制
配置文件
vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="–logtostderr=true"
KUBE_LOG_LEVEL="–v=0"
KUBE_ALLOW_PRIV="–allow-privileged=false"
KUBE_MASTER="–master=http://master:8080" (也可寫成IP)
修改/etc/hosts
192.168.206.130 master
192.168.206.131 node01
192.168.206.132 node02
六、配置etcd
在master:
vim /etc/etcd/etcd.conf
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" (自己的指定ip也可)
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
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_ETCD_SERVERS="–etcd-servers=http://127.0.0.1:2379"
KUBE_SERVICE_ADDRESSES="–service-cluster-ip-range=10.254.0.0/16"
KUBE_ADMISSION_CONTROL="–admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota"
KUBE_API_ARGS=""
七、註冊FLANNEL
在master:
service etcd start
etcdctl mkdir /kube-centos/network
etcdctl mk /kube-centos/network/config "{ "Network": "172.30.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }"
172.30是自己定義的B類的,後面它自己會分配C類的地址,以172.30開頭
配置flannel
vim /etc/sysconfig/flanneld
FLANNEL_ETCD="http://master:2379"
FLANNEL_ETCD_KEY="/kube-centos/network"
FLANNEL_OPTIONS=""
註:#FLANNEL_ETCD_PREFIX="/atomic.io/network" 這句注釋掉,用這句
FLANNEL_ETCD_KEY="/kube-centos/network"
五、關閉所有防火牆和selinux
systemctl disable iptables.services firewalld
systemctl stop iptables.services firewalld
重啟服務:
for SERVICES in etcd kube-apiserver kube-controller-manager kube-scheduler flanneld; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
可選
kubectl config set-cluster default-cluster –server=http://master:8080
kubectl config set-context default-context –cluster=default-cluster –user=default-admin
kubectl config use-context default-context
二、配置節點
1、yum install -y kubernetes-node flannel
echo "
192.168.206.130master
192.168.206.131node01
192.168.206.132 node02" >> /etc/hosts
配置文件
vim /etc/kubernetes/config
KUBE_LOGTOSTDERR="–logtostderr=true"
KUBE_LOG_LEVEL="–v=0"
KUBE_ALLOW_PRIV="–allow-privileged=false"
KUBE_MASTER="–master=http://master:8080"
vim /etc/kubernetes/kubelet
KUBELET_ADDRESS="–address=0.0.0.0"
KUBELET_HOSTNAME="–hostname-override=minion2"
KUBELET_API_SERVER="–api-servers=http://master:8080"
#把pause地址改為自己下載的pause-amd64:3.0 在harbor中的地址
KUBELET_POD_INFRA_CONTAINER="–pod-infra-container-p_w_picpath=docker.io/kubernetes/pause:2.0"
KUBELET_ARGS=""
其實注意KUBELET_POD_INFRA_CONTAINER="–pod-infra-container-p_w_picpath=192.168.206.153/myproject/pause:2.0"
配置flannel
vim /etc/sysconfig/flanneld
FLANNEL_ETCD="http://master:2379"
FLANNEL_ETCD_KEY="/kube-centos/network"
FLANNEL_OPTIONS=""
重啟相關服務
for SERVICES in kube-proxy kubelet flanneld docker; do
systemctl restart $SERVICES
systemctl enable $SERVICES
systemctl status $SERVICES
done
看節點註冊上來沒有
kubectl get node
kubectl get node -w
三、配置DASHBOARD
注意所有master和node節點
/etc/sysconfig/docker
ADD_REGISTRY='–insecure-registry 192.168.206.129' (HABOR的地址)
下載yaml文件,文件位置/root/kubernetes-dashboard.yaml(在harbor里有)
修改如下欄位:
p_w_picpath: 192.168.206.129/kube/k8s-dashboard:1.6.0
p_w_picpathPullPolicy: IfNotPresent
– –apiserver-host=http://master:8080
安裝資源 kubectl create -f kubernetes-dashboard.yaml
獲得狀態kubectl get pod –namespace=kube-system
查錯:kubectl describe pod –namespace=kube-system (排錯用)
成功後可看到K8S的介面

補充:其實K8S的網路組件選擇很多,默認是flannel,但可以根據自己的需要選擇calico、weave、RR,calico性能最好,weave和flannel差不多。Addons中有配置好的yaml,部署環境使用的阿里雲的VPC,官方提供的flannel.yaml創建的flannel網路有點小問題。
還有kubeadm是Kubernetes官方推出的快速部署Kubernetes集群工具,其思路是將Kubernetes相關服務容器化(Kubernetes靜態Pod)以簡化部署。但kubeadm當前處於beta階段,不建議生產環境使用(比如etcd單點)。使用kubeadm部署Kubernetes集群非常簡單方便,部署過程與之類似。