一个很好的demo练习种草:rootsongjc/kubernetes-vagrant-centos-clustergithub.com
内容概览:
1.安装docker kubectl 等基本工具 2.通过 kubeadm init , join 创建集群 3.安装 kubernetes-dashboard
一、安装docker等基本工具
1.首先,查看作为主节点的系统信息:
2.修改节点名称
(1)所有节点 vim /etc/hosts
(2)vim /etc/hostname
修改完后 reboot 机器
(3)无密码 ssh 登录其它节点
ssh-keygen -t rsa
ssh-copy-id root@node1
ssh-copy-id root@node2
2.安装必要工具:
yum install -y lrzsz wget curl conntrack-tools vim net-tools telnet tcpdump bind-utils socat ntp kmod ceph-common dos2unix
3.配置各节点阿里K8S YUM源
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=0
EOF
yum -y install epel-release
yum clean all
yum makecache
4.在各节点安装kubeadm和相关工具包
yum -y install docker-ce kubelet kubeadm kubectl kubernetes-cni
5.启动Docker与kubelet服务
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
二、通过 kubeadm init join 创建集群
1.使用 kubeadm init 初始化主节点:
使用options --image-repository mirrorgooglecontainers 指定仓库
首先用 kubeadm config images list 查看都需要哪些镜像:
可以通过docker pull 镜像到本地,也可以init时指定仓库。如果其中有失败的,可以通过dockerhub 来查找需要的镜像。
kubeadm init --image-repository mirrorgooglecontainers --pod-network-cidr= 10.244.0.0/16
(使用--pod-network-cidr使用flannel网络)
结束后会显示:
2.此时,可以根据提示做相应操作。
参考链接:flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
3. 在worker主机运行:kubeadm join
4.在master主机 指定 role :
kubectl label node [name] node-role.kubernetes.io/worker=
三、安装 dashboard
https:// kubernetes.io/docs/conc epts/cluster-administration/addons/ 此处指定了大多插件,包括dashboard:
1.首先,下载 kubernetes-dashboard.yaml 到本地:
wget https:// raw.githubusercontent.com /kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
2.修改文件,添加 type:NodePort 暴露端口以便访问:
修改镜像拉取方式:这里可以到docker hub 查找 ,并修改这里:
然后就可以部署了:
kubectl create -f kubernetes-dashboard.yaml
3.部署完成之后还需要创建服务账号:
创建 vim dashboard-adminuser.yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard-admin
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kubernetes-dashboard-admin
labels:
k8s-app: kubernetes-dashboard
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: kubernetes-dashboard-admin
namespace: kube-system
kubectl apply -f dashboard-adminuser.yaml
查看Token
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kubernetes-dashboard-admin-token | awk '{print $1}')
此处保留token内容,以后登陆会用到。
4.查看 dashboard端口号:
kubectl get svc -n kube-system
访问dashboard即可
注:自签证书chorme无法信任,需要使用火狐浏览器访问。
输入刚才的 token
四、细节:
1.自动补全设置
yum install -y bash-completion
find / -name bash_completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
参考:bash_completion
2.重装k8s系统前需要清空设置
(1)查看集群状态,确认组件都处于healthy状态
kubectl get cs
(2)各个节点上运行:
kubeadm reset
ifconfig cni0 down
ip link delete cni0
ifconfig flannel.1 down
ip link delete flannel.1
rm -rf /var/lib/cni/