[国内镜像搜索]
:https://cr.console.aliyun.com/cn-hangzhou/instances/images
[参考]
https://www.kubernetes.org.cn/5462.html
https://blog.csdn.net/myembedded/article/details/88703629
https://blog.csdn.net/hjxzb/article/details/82823191
一、环境配置
配置 步骤一 :关闭防火墙、selinux和swap
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
配置 步骤二 :配置内核参数,将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
配置 步骤三 :配置国内yum源
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all && yum makecache
配置 步骤四:国内Kubernetes源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
配置 步骤五:docker 源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[配置主机名]
hostnamectl set-hostname master
[配置映射]
cat <<EOF >>/etc/hosts
10.0.0.117 thinxz-master
10.0.0.113 thinxz-node1
EOF
二、安装软件
安装 步骤一 :安装DOCKER
:yum install -y docker-ce-18.06.1.ce-3.el7
:systemctl enable docker && systemctl start docker
:docker version
Docker version 18.06.1-ce, build e68fc7a
安装 步骤二 :安装 kubeadm、kubelet、kubectl
:yum install -y kubelet kubeadm kubectl
:systemctl enable kubelet
三、配置 Master
Kubernetes集群初始化
kubeadm init --kubernetes-version=1.15.0 \
--apiserver-advertise-address10.0.0.117 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
// kubeadm reset # 重置, 重新安装
// kubeadm init --kubernetes-version=1.15.0 --apiserver-advertise-address=10.0.0.117 --image-repository registry.aliyuncs.com/google_containers --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
// --apiserver-advertise-address=10.0.0.117 , master主机IP
// –image-repository 指定阿里云镜像仓库地址, 否则默认k8s.grc.io下载
// 集群初始化成功后返回语句, 用于在Node节点加入集群 [记录]
kubeadm join 10.10.10.101:6443 --token 49u7qy.b2qy8sg1c9v47fyb \
--discovery-token-ca-cert-hash sha256:b32d80a1ef7e97f9ee176529139c6c5b733371b8c25b991ce7808f2761cb1924
[root@thinxz-master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.15.0 d235b23c3570 11 days ago 82.4MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.15.0 201c7a840312 11 days ago 207MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.15.0 8328bb49b652 11 days ago 159MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.15.0 2d3813851e87 11 days ago 81.1MB
registry.aliyuncs.com/google_containers/coredns 1.3.1 eb516548c180 5 months ago 40.3MB
registry.aliyuncs.com/google_containers/etcd 3.3.10 2c4adeb21b4f 7 months ago 258MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 18 months ago 742kB
配置kubectl工具
mkdir -p /root/.kube
cp /etc/kubernetes/admin.conf /root/.kube/config
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
kubectl get cs
部署flannel网络
//kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
sed 's/quay.io\/coreos/registry.cn-beijing.aliyuncs.com\/imcto/g' kube-flannel.yml
kubectl apply -f kube-flannel.yml
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.15.0 d235b23c3570 12 days ago 82.4MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.15.0 201c7a840312 12 days ago 207MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.15.0 8328bb49b652 12 days ago 159MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.15.0 2d3813851e87 12 days ago 81.1MB
quay.io/coreos/flannel v0.11.0-amd64 ff281650a721 5 months ago 52.6MB
registry.aliyuncs.com/google_containers/coredns 1.3.1 eb516548c180 5 months ago 40.3MB
registry.aliyuncs.com/google_containers/etcd 3.3.10 2c4adeb21b4f 7 months ago 258MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 18 months ago 742kB
[root@master ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18baa6174d17 eb516548c180 "/coredns -conf /etc…" 2 hours ago Up 2 hours k8s_coredns_coredns-bccdc95cf-plt84_kube-system_c1f9eed2-ca70-4be2-89cd-cc85c09cbd6a_0
ca660fecf186 eb516548c180 "/coredns -conf /etc…" 2 hours ago Up 2 hours k8s_coredns_coredns-bccdc95cf-rkf7g_kube-system_67fee7ff-6067-4169-9202-b7e269d60660_0
b121bc4d9e3b registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 hours ago Up 2 hours k8s_POD_coredns-bccdc95cf-plt84_kube-system_c1f9eed2-ca70-4be2-89cd-cc85c09cbd6a_0
927dfd6a5b4a registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 hours ago Up 2 hours k8s_POD_coredns-bccdc95cf-rkf7g_kube-system_67fee7ff-6067-4169-9202-b7e269d60660_0
66c7bae4378a ff281650a721 "/opt/bin/flanneld -…" 2 hours ago Up 2 hours k8s_kube-flannel_kube-flannel-ds-amd64-dlbvr_kube-system_3bad3208-a497-4fc3-9070-0e85cc7fddcc_0
c5eff693b474 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 hours ago Up 2 hours k8s_POD_kube-flannel-ds-amd64-dlbvr_kube-system_3bad3208-a497-4fc3-9070-0e85cc7fddcc_0
812565971e10 d235b23c3570 "/usr/local/bin/kube…" 2 hours ago Up 2 hours k8s_kube-proxy_kube-proxy-mwzgq_kube-system_cd0e876c-e17a-4562-aeaa-5cc43f0eb897_0
c0eeb0cb5cdc registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 hours ago Up 2 hours k8s_POD_kube-proxy-mwzgq_kube-system_cd0e876c-e17a-4562-aeaa-5cc43f0eb897_0
b06d7eb2cbac 2d3813851e87 "kube-scheduler --bi…" 2 hours ago Up 2 hours k8s_kube-scheduler_kube-scheduler-master_kube-system_72815ad5dd205fae43f0c83b411ccbb6_0
cf5341057aa1 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 hours ago Up 2 hours k8s_POD_kube-scheduler-master_kube-system_72815ad5dd205fae43f0c83b411ccbb6_0
e3ab77be164d 8328bb49b652 "kube-controller-man…" 2 hours ago Up 2 hours k8s_kube-controller-manager_kube-controller-manager-master_kube-system_40e5cb1634f1e0dec9286d2fafb1cfd1_0
3ba5240b0c1e registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 hours ago Up 2 hours k8s_POD_kube-controller-manager-master_kube-system_40e5cb1634f1e0dec9286d2fafb1cfd1_0
249e679dc777 201c7a840312 "kube-apiserver --ad…" 2 hours ago Up 2 hours k8s_kube-apiserver_kube-apiserver-master_kube-system_a1333553e0844a8aec4e60b2631da0fe_0
2c672ed54ed3 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 hours ago Up 2 hours k8s_POD_kube-apiserver-master_kube-system_a1333553e0844a8aec4e60b2631da0fe_0
249e6a4257b4 2c4adeb21b4f "etcd --advertise-cl…" 2 hours ago Up 2 hours k8s_etcd_etcd-master_kube-system_fd1661d58f9b89884ba5d572bc03bf90_0
2b06da30a124 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 hours ago Up 2 hours k8s_POD_etcd-master_kube-system_fd1661d58f9b89884ba5d572bc03bf90_0
四、部署node节点
// 执行命令加入集群
kubeadm join 10.10.10.101:6443 --token 49u7qy.b2qy8sg1c9v47fyb \
--discovery-token-ca-cert-hash sha256:b32d80a1ef7e97f9ee176529139c6c5b733371b8c25b991ce7808f2761cb1924
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.15.0 d235b23c3570 12 days ago 82.4MB
quay.io/coreos/flannel v0.11.0-amd64 ff281650a721 5 months ago 52.6MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 18 months ago 742kB
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
68e26612314b ff281650a721 "/opt/bin/flanneld -…" About a minute ago Up About a minute k8s_kube-flannel_kube-flannel-ds-amd64-z8rkj_kube-system_0aad4be2-61cc-4639-a5d7-a8de1a35a896_0
a5691dc3dbfb registry.aliyuncs.com/google_containers/kube-proxy "/usr/local/bin/kube…" 2 minutes ago Up 2 minutes k8s_kube-proxy_kube-proxy-sbs4c_kube-system_71c86b09-743b-408c-a5dd-58476af31453_0
40da93383aaa registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 minutes ago Up 2 minutes k8s_POD_kube-flannel-ds-amd64-z8rkj_kube-system_0aad4be2-61cc-4639-a5d7-a8de1a35a896_0
74fa03e94562 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 minutes ago Up 2 minutes k8s_POD_kube-proxy-sbs4c_kube-system_71c86b09-743b-408c-a5dd-58476af31453_0
五、检测集群状态
[master]
kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 26m v1.14.2
node1 Ready <none> 3m10s v1.14.2
node2 Ready <none> 3m v1.14.2
[创建Pod以验证集群是否正常]
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
部署Dashboard
// https://blog.csdn.net/qq_22917163/article/details/84527420
[master]
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
[]
sed -i 's/k8s.gcr.io/loveone/g' kubernetes-dashboard.yaml
sed -i '/targetPort:/a\ \ \ \ \ \ nodePort: 30001\n\ \ type: NodePort' kubernetes-dashboard.yaml
[部署]
kubectl create -f kubernetes-dashboard.yaml
[检测]
kubectl get deployment kubernetes-dashboard -n kube-system
kubectl get pods -n kube-system -o wide
kubectl get services -n kube-system
netstat -ntlp|grep 30001
[查看令牌]
kubectl create serviceaccount dashboard-admin -n kube-system
kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
[]
https://10.10.10.10:30001
root@master opt]# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default nginx-554b9c67f9-6x5q5 0/1 ImagePullBackOff 0 27m
kube-system coredns-bccdc95cf-plt84 1/1 Running 0 142m
kube-system coredns-bccdc95cf-rkf7g 1/1 Running 0 142m
kube-system etcd-master 1/1 Running 0 142m
kube-system kube-apiserver-master 1/1 Running 0 142m
kube-system kube-controller-manager-master 1/1 Running 0 142m
kube-system kube-flannel-ds-amd64-dlbvr 1/1 Running 0 134m
kube-system kube-flannel-ds-amd64-z8rkj 1/1 Running 0 108m
kube-system kube-proxy-mwzgq 1/1 Running 0 142m
kube-system kube-proxy-sbs4c 1/1 Running 0 108m
kube-system kube-scheduler-master 1/1 Running 0 142m
kube-system kubernetes-dashboard-77b66cfcd6-tfv72 1/1 Running 0 48s
[root@master opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.15.0 d235b23c3570 12 days ago 82.4MB
registry.aliyuncs.com/google_containers/kube-apiserver v1.15.0 201c7a840312 12 days ago 207MB
registry.aliyuncs.com/google_containers/kube-controller-manager v1.15.0 8328bb49b652 12 days ago 159MB
registry.aliyuncs.com/google_containers/kube-scheduler v1.15.0 2d3813851e87 12 days ago 81.1MB
quay.io/coreos/flannel v0.11.0-amd64 ff281650a721 5 months ago 52.6MB
registry.aliyuncs.com/google_containers/coredns 1.3.1 eb516548c180 5 months ago 40.3MB
registry.aliyuncs.com/google_containers/etcd 3.3.10 2c4adeb21b4f 7 months ago 258MB
registry.cn-hangzhou.aliyuncs.com/kube_containers/kubernetes-dashboard-amd64 latest 0c60bcf89900 16 months ago 102MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 18 months ago 742kB
[root@master opt]# kubectl get deployment kubernetes-dashboard -n kube-system
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-dashboard 1/1 1 1 3m2s
[root@master opt]# kubectl get pods -n kube-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
coredns-bccdc95cf-plt84 1/1 Running 0 145m 10.244.0.2 master <none> <none>
coredns-bccdc95cf-rkf7g 1/1 Running 0 145m 10.244.0.3 master <none> <none>
etcd-master 1/1 Running 0 145m 10.10.10.101 master <none> <none>
kube-apiserver-master 1/1 Running 0 145m 10.10.10.101 master <none> <none>
kube-controller-manager-master 1/1 Running 0 145m 10.10.10.101 master <none> <none>
kube-flannel-ds-amd64-dlbvr 1/1 Running 0 136m 10.10.10.101 master <none> <none>
kube-flannel-ds-amd64-z8rkj 1/1 Running 0 111m 10.10.10.102 node1 <none> <none>
kube-proxy-mwzgq 1/1 Running 0 145m 10.10.10.101 master <none> <none>
kube-proxy-sbs4c 1/1 Running 0 111m 10.10.10.102 node1 <none> <none>
kube-scheduler-master 1/1 Running 0 145m 10.10.10.101 master <none> <none>
kubernetes-dashboard-77b66cfcd6-tfv72 1/1 Running 0 3m14s 10.244.0.6 master <none> <none>
[root@master opt]# kubectl get services -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.1.0.10 <none> 53/UDP,53/TCP,9153/TCP 145m
kubernetes-dashboard ClusterIP 10.1.51.78 <none> 443/TCP 3m29s
Question
[查看日志]
:journalctl -f -u kubelet
7月 02 07:53:26 thinxz-master kubelet[1626]: W0702 07:53:26.574913 1626 cni.go:161] Error loading CNI config file /etc/cni/net.d/10-flannel.conf: error parsing configuration: invalid character 'n' looking for beginning of object key string
7月 02 07:53:26 thinxz-master kubelet[1626]: W0702 07:53:26.575026 1626 cni.go:213] Unable to update cni config: No valid networks found in /etc/cni/net.d
7月 02 07:53:27 thinxz-master kubelet[1626]: E0702 07:53:27.569757 1626 kubelet.go:2169] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
// https://www.jianshu.com/p/1bbb32c02e77
sysctl net.bridge.bridge-nf-call-iptables=1
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
# 修改docker镜像地址
sed 's/quay.io\/coreos/registry.cn-beijing.aliyuncs.com\/imcto/g' kube-flannel.yml
# 安装flannel
sudo kubectl apply -f kube-flannel.yml
// https://blog.51cto.com/liuzhengwei521/2382257?source=dra
kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl delete -f kube-flannel.yml
// https://blog.csdn.net/wzygis/article/details/91366441
// http://windgreen.me/2018/05/16/unable-to-update-cni-config-no-networks-found-in-etccninet-d/
[root@thinxz-master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/coreos/flannel v0.11.0-amd64 ff281650a721 5 months ago 52.6MB
registry.cn-hangzhou.aliyuncs.com/google-containers/flannel v0.8.0 4c1e209cfb66 23 months ago 52.5MB
quay.io/coreos/flannel v0.8.0-amd64 9db3bab8c19e 24 months ago 50.7MB
[root@thinxz-master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
thinxz-master Ready master 59m v1.15.0
[root@thinxz-master ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1234fbadcfa eb516548c180 "/coredns -conf /etc…" 2 minutes ago Up 2 minutes k8s_coredns_coredns-bccdc95cf-dfnw4_kube-system_dce2846a-7a47-4a98-a919-ad8bfbfd9359_8
7621a3ab08ec eb516548c180 "/coredns -conf /etc…" 2 minutes ago Up 2 minutes k8s_coredns_coredns-bccdc95cf-6j2k2_kube-system_34dea44f-42e8-47b9-976c-be26b14849ed_8
ce28b95726eb registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 minutes ago Up 2 minutes k8s_POD_coredns-bccdc95cf-dfnw4_kube-system_dce2846a-7a47-4a98-a919-ad8bfbfd9359_8
e54e92aa2eb6 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 minutes ago Up 2 minutes k8s_POD_coredns-bccdc95cf-6j2k2_kube-system_34dea44f-42e8-47b9-976c-be26b14849ed_9
6383bfbbe1bc ff281650a721 "/opt/bin/flanneld -…" 2 minutes ago Up 2 minutes k8s_kube-flannel_kube-flannel-ds-amd64-6lkvw_kube-system_2d3fe8af-ded1-4b5a-8257-17b49518eb39_1
1e8123510b01 d235b23c3570 "/usr/local/bin/kube…" 2 minutes ago Up 2 minutes k8s_kube-proxy_kube-proxy-zcv2k_kube-system_0e557b28-ddce-4a3e-8801-29235e6c2fd9_4
8b5c6524e7e9 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 minutes ago Up 2 minutes k8s_POD_kube-flannel-ds-amd64-6lkvw_kube-system_2d3fe8af-ded1-4b5a-8257-17b49518eb39_1
b67602c726b3 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 2 minutes ago Up 2 minutes k8s_POD_kube-proxy-zcv2k_kube-system_0e557b28-ddce-4a3e-8801-29235e6c2fd9_4
56c65ab4ebe2 2d3813851e87 "kube-scheduler --bi…" 3 minutes ago Up 3 minutes k8s_kube-scheduler_kube-scheduler-thinxz-master_kube-system_72815ad5dd205fae43f0c83b411ccbb6_4
f5f3b4c566ba 201c7a840312 "kube-apiserver --ad…" 3 minutes ago Up 3 minutes k8s_kube-apiserver_kube-apiserver-thinxz-master_kube-system_7456745ce4e34919810e3817dded9b50_4
09efc80d9af3 2c4adeb21b4f "etcd --advertise-cl…" 3 minutes ago Up 3 minutes k8s_etcd_etcd-thinxz-master_kube-system_29c42b67df781ce46af8f020cce43f95_4
0ee3f6fb4fc0 8328bb49b652 "kube-controller-man…" 3 minutes ago Up 3 minutes k8s_kube-controller-manager_kube-controller-manager-thinxz-master_kube-system_40e5cb1634f1e0dec9286d2fafb1cfd1_4
f882a622e657 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 3 minutes ago Up 3 minutes k8s_POD_kube-scheduler-thinxz-master_kube-system_72815ad5dd205fae43f0c83b411ccbb6_4
b1354cfd3b0b registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 3 minutes ago Up 3 minutes k8s_POD_kube-controller-manager-thinxz-master_kube-system_40e5cb1634f1e0dec9286d2fafb1cfd1_4
077767b0d043 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 3 minutes ago Up 3 minutes k8s_POD_etcd-thinxz-master_kube-system_29c42b67df781ce46af8f020cce43f95_4
463aa14854f0 registry.aliyuncs.com/google_containers/pause:3.1 "/pause" 3 minutes ago Up 3 minutes k8s_POD_kube-apiserver-thinxz-master_kube-system_7456745ce4e34919810e3817dded9b50_4