包含3个master的ip及vip(若是还有多个vip,尤为是内外网的那种,都添加进去)node
cat > /etc/ssl/apiserver/kubernetes-csr.json <<EOF
{
"CN": "kubernetes",
"hosts": [
"127.0.0.1",
"192.168.1.40",
"192.168.1.41",
"192.168.1.42",
"192.168.1.43",
"10.254.0.1",
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "ChengDu",
"L": "ChengDu",
"O": "k8s",
"OU": "dessler"
}
]
}
EOF
复制代码
备用git
head -c 32 /dev/urandom | base64
7SYVGPUjN+hw2fxa6I3+vfy5wPK+0uRgqo0b9Lyp8To=
复制代码
使用刚才的密匙github
mkdir -p /opt/kubernetes/cfg/
cat > /opt/kubernetes/cfg/encryption-config.yaml <<EOF
kind: EncryptionConfig
apiVersion: v1
resources:
- resources:
- secrets
providers:
- aescbc:
keys:
- name: key1
secret: 7SYVGPUjN+hw2fxa6I3+vfy5wPK+0uRgqo0b9Lyp8To=
- identity: {}
EOF
复制代码
mkdir -p /var/log/kubernetes
复制代码
注意修改里面的ip地址(不一样的master须要修改)json
由于就一个ip地址修改,因此这里就没有分红3个了配置,就一个配置,大家本身修改下里面的ip地址便可bootstrap
cat > /usr/lib/systemd/system/kube-apiserver.service <<EOF
[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=network.target
[Service]
ExecStart=/usr/bin/kube-apiserver \\
--enable-admission-plugins=Initializers,NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota \\
--anonymous-auth=false \\
--experimental-encryption-provider-config=/opt/kubernetes/cfg/encryption-config.yaml \\
--advertise-address=192.168.1.40 \\
--bind-address=192.168.1.40 \\
--insecure-port=0 \\
--authorization-mode=Node,RBAC \\
--runtime-config=api/all \\
--enable-bootstrap-token-auth \\
--service-cluster-ip-range=10.254.0.0/16 \\
--tls-cert-file=/etc/ssl/apiserver/kubernetes.pem \\
--tls-private-key-file=/etc/ssl/apiserver/kubernetes-key.pem \\
--client-ca-file=/etc/ssl/ca.pem \\
--kubelet-client-certificate=/etc/ssl/apiserver/kubernetes.pem \\
--kubelet-client-key=/etc/ssl/apiserver/kubernetes-key.pem \\
--service-account-key-file=/etc/ssl/ca-key.pem \\
--etcd-cafile=/etc/ssl/ca.pem \\
--etcd-certfile=/etc/ssl/apiserver/kubernetes.pem \\
--etcd-keyfile=/etc/ssl/apiserver/kubernetes-key.pem \\
--etcd-servers=https://192.168.1.40:2379,https://192.168.1.41:2379,https://192.168.1.42:2379 \\
--enable-swagger-ui=true \\
--allow-privileged=true \\
--apiserver-count=2 \\
--audit-log-maxage=30 \\
--audit-log-maxbackup=3 \\
--audit-log-maxsize=100 \\
--audit-log-path=/var/log/kubernetes/kube-apiserver-audit.log \\
--event-ttl=1h \\
--alsologtostderr=true \\
--logtostderr=false \\
--log-dir=/var/log/kubernetes \\
--v=2
Restart=on-failure
RestartSec=5
Type=notify
#User=k8s
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
复制代码
kubectl create clusterrolebinding kube-apiserver:kubelet-apis --clusterrole=system:kubelet-api-admin --user kubernetes复制代码
8.启动服务api
systemctl daemon-reload
systemctl start kube-apiserver
systemctl enable kube-apiserver
systemctl status kube-apiserver
复制代码
kubectl cluster-info
Kubernetes master is running at https://192.168.1.43:8443
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.复制代码
master的组件完成安全