K8S的单节点部署
部署前准备(需要root账号)节点主机名唯一,建议写入/etc/hosts禁止swap分区关闭防火墙root@haishu:/home/haishu# hostnamectl set-hostname k8s-masterroot@haishu:/home/haishu# tail /etc/hosts127.0.1.1haishu-System-Product-Name# The followi
部署前准备(需要root账号)
节点主机名唯一,建议写入/etc/hosts
禁止swap分区
关闭防火墙
root@haishu:/home/haishu# hostnamectl set-hostname k8s-master
root@haishu:/home/haishu# tail /etc/hosts
127.0.1.1 haishu-System-Product-Name
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.120.163 slave02
192.168.120.160 master
root@haishu:/home/haishu# ufw status
状态:不活动
安装必要的工具
step 1: 安装必要的一些系统工具
apt-get -y install apt-transport-https ca-certificates curl software-properties-common
step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
Step 3: 写入软件源信息
add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
Step 4: 更新并安装 Docker-CE
apt-get -y update
安装指定版本的Docker-CE:
Step 1: 查找Docker-CE的版本:
apt-cache madison docker-ce
sudo apt-get -y install docker-ce=[VERSION] //安装格式
apt-get -y install docker-ce=18.06.3~ce~3-0~ubuntu
配置docker-hub源
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload && systemctl restart docker
docker-ce安装请参考阿里云文档:https://yq.aliyun.com/articles/110806
安装kubeadm
注意:建议kubelet、kubeadm、kubectl 跟kubernetes dashboard最新的支持版本一直
https://github.com/kubernetes/dashboard/releases/tag/v2.0.0-beta4
apt-get update && apt-get install -y apt-transport-https
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
新增源
add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
apt-get update
apt-cache madison kubelet kubectl kubeadm |grep '1.15.4-00' //查看1.15的最新版本
apt install -y kubelet=1.15.4-00 kubectl=1.15.4-00 kubeadm=1.15.4-00 //安装指定的版本
###配置kubelet禁用swap
tee /etc/default/kubelet <<-'EOF'
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
EOF
systemctl daemon-reload && systemctl restart kubelet
注意:目前kubelet服务是启动异常的由于缺少很多参数配置文件,需要等待kubeadm init 后生成,就会自动启动了
部署到服务器
npm run build
初始化k8s
kubeadm init \
--kubernetes-version=v1.15.4 \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.24.0.0/16 \
--ignore-preflight-errors=Swap
###kubectl配置调用
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
###k8s网络(用的flannel的overlay 实现多节点pod通信)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
podsecuritypolicy.policy/psp.flannel.unprivileged configured
clusterrole.rbac.authorization.k8s.io/flannel unchanged
clusterrolebinding.rbac.authorization.k8s.io/flannel unchanged
serviceaccount/flannel unchanged
configmap/kube-flannel-cfg unchanged
daemonset.apps/kube-flannel-ds unchanged
root@haishu:/home/haishu#
kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-bccdc95cf-bfj8b 1/1 Running 1 41h
kube-system coredns-bccdc95cf-fb55d 1/1 Running 1 41h
kube-system etcd-haishu 1/1 Running 1 41h
kube-system kube-apiserver-haishu 1/1 Running 1 41h
kube-system kube-controller-manager-haishu 1/1 Running 1 41h
kube-system kube-flannel-ds-ww6vg 1/1 Running 1 41h
kube-system kube-proxy-ks874 1/1 Running 1 41h
kube-system kube-scheduler-haishu 1/1 Running 1 41h
kubernetes-dashboard dashboard-metrics-scraper-76679bc5b9-txn5p 1/1 Running 0 23h
kubernetes-dashboard kubernetes-dashboard-5d46dbcdb7-cdpld 1/1 Running 0 23h
注意:上面是我原来已经拉取到的。没有拉去到需要执行下面指令
grep -i image kube-flannel.yml
docker pull quay.io/coreos/flannel:v0.11.0-amd64
K8S的界面设置dashboard
下载kubernetes-dashboard.yaml文件
wget http://mirror.faasx.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
修改文件kubernetes-dashboard.yaml文件中的kind: Service节点
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system
spec:
type: NodePort
ports:
- port: 443
targetPort: 8443
nodePort: 31001
selector:
k8s-app: kubernetes-dashboard
kubectl apply -f kubernetes-dashboard.yaml
kubectl get pod -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-7f5767668b-dd7ml 1/1 Running 0 28s
kubernetes-dashboard-57b4bcc994-vrzcp 1/1 Running 0 28s
查看yaml文件提供的pod均正常运行
kubectl get svc -n kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.110.63.144 <none> 8000/TCP 86s
kubernetes-dashboard NodePort 10.111.65.9 <none> 443:31001/TCP 87s
使用火狐浏览器访问https://192.168.120.160:31001/ 选择接受风险并继续
使用Token的方式登录
#创建一个dashboard的管理用户
kubectl create serviceaccount dashboard-admin -n kube-system
#将创建的dashboard用户绑定为管理用户
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
#获取刚刚创建的用户对应的token名称
kubectl get secrets -n kube-system | grep dashboard
#查看token的详细信息
kubectl describe secrets -n kube-system dashboard-admin-token-88gxw
复制token信息在浏览器中选择token后输入登录
更多推荐
所有评论(0)