k8s下keepalived-vip的安装
首先,进入https://github.com/kubernetes/contrib/tree/master/keepalived-vipclone最新的代码1. 需要对结点打标签,如下所以:kubectl label node node1 type=worker2. 执行如下命令,创建账户kubectl create sa kube-keepalived-vip3. 修...
首先,进入https://github.com/kubernetes/contrib/tree/master/keepalived-vip
clone最新的代码
1. 需要对结点打标签,如下所以:
kubectl label node node1 type=worker
2. 执行如下命令,创建账户
kubectl create sa kube-keepalived-vip
3. 修改contrib/keepalived-vip/vip-daemonset.yaml文件,在其中加入serviceAccount: kube-keepalived-vip:
spec:
hostNetwork: true
serviceAccount: kube-keepalived-vip
containers:
- image: k8s.gcr.io/kube-keepalived-vip:0.11
并将其中默认的k8s.gcr.io/kube-keepalived-vip:0.11改为gcr.mirrors.ustc.edu.cn/google-containers/kube-keepalived-vip:0.11
4. 执行如下命令:
echo 'apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: kube-keepalived-vip
rules:
- apiGroups: [""]
resources:
- pods
- nodes
- endpoints
- services
- configmaps
verbs: ["get", "list", "watch"]' | kubectl create -f -
这里要注意,github上给出的命令是有问题的,执行后保错:
error: unable to recognize "STDIN": no matches for kind "ClusterRole" in version "rbac.authorization.k8s.io/v1alpha1"
需要修改apiVersion,将v1beta1改为v1alpha1
5. 将如下内容写入rbac.yml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: kube-keepalived-vip
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kube-keepalived-vip
subjects:
- kind: ServiceAccount
name: kube-keepalived-vip
namespace: default
执行kubectl create -f rbac.yml
6. 修改如下文件:contrib/keepalived-vip/vip-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: vip-configmap
data:
10.4.0.50: default/echoheaders
将其中的ip修改为需要创建的虚拟ip,注意这个ip应该与宿主机同一网段,并且没有被占用。此外,将echoheaders修改为需要使用的服务
7. 执行kubectl create -f contrib/keepalived-vip/vip-daemonset.yaml,启动虚拟机。
使用kubectl logs kube-keepalived-vip-tttxx 可以检查日志,注意,如果日志中频繁出现如下内容:
F0111 07:25:14.410876 1 controller.go:314] Error getting POD information: timed out waiting to observe own status as Running
goroutine 1 [running]:
k8s.io/contrib/keepalived-vip/vendor/github.com/golang/glog.stacks(0xc42028fe00, 0xc420142140, 0x83, 0x9d)
说明权限配置有问题,需要重新检查2、3、4、5步是否正确执行。
更多推荐
所有评论(0)